«bigdecimal» etiketlenmiş sorular

BigDecimal, Java'da rastgele hassasiyetle ondalık sayıları temsil eden sayısal bir nesne türüdür.


6
Çift mi BigDecimal mi?
Bazı kayan nokta değişkenleri hesaplamak zorunda ve meslektaşım beni kullanmak önermek BigDecimalyerine doubledaha kesin olacağından. Ama bunun ne olduğunu ve bundan en iyi şekilde nasıl yararlanabileceğini bilmek istiyorum BigDecimal?


1
BigDecimal'ı * always * olarak yuvarlamak iki ondalık basamağa sahip
BigDecimal değerleri iki ondalık basamağa yuvarlamaya çalışıyorum. kullanıyorum BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); ama sürekli istediğimi yapmıyor: rounded 0.819 to 0.82 rounded 1.092 to 1.1 rounded 1.365 to 1.4 // should be 1.37 rounded 2.730 to 2.8 // should be 2.74 rounded 0.819 …

5
DecimalFormat'ın ondalık ayırıcısını virgülden nokta / noktaya nasıl değiştirebilirim?
Ben güzel ve okunabilir Dizeler BigDecimal değerleri dönüştüren bu küçük deli yöntemi var. private String formatBigDecimal(BigDecimal bd){ DecimalFormat df = new DecimalFormat(); df.setMinimumFractionDigits(3); df.setMaximumFractionDigits(3); df.setMinimumIntegerDigits(1); df.setMaximumIntegerDigits(3); df.setGroupingSize(20); return df.format(bd); } Ancak, ","tüm değerlerimi şu şekilde ortaya çıkaran gruplama ayırıcısı da üretir : xxx,xxx Bir virgül değil nokta veya nokta olmak …


5
Akışları kullanarak BigDecimal'leri ekleme
Ben LinkedListbirlikte eklemek istiyorum BigDecimals (bu örnekte, a ) bir koleksiyon var . Bunun için akış kullanmak mümkün mü? StreamSınıfın birkaç yöntemi olduğunu fark ettim Stream::mapToInt Stream::mapToDouble Stream::mapToLong Her birinin uygun bir sum()yöntemi vardır. Ancak, bildiğimiz gibi floatve doublearitmetik neredeyse her zaman kötü bir fikirdir. Yani, BigDecimal'leri özetlemenin uygun bir …

4
Karşılaştırmaya () karşılık BigDecimal eşittir ()
Basit test sınıfını düşünün: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal("1"); BigDecimal y = new BigDecimal("1.00"); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 ? "true": …

11
BigDecimal için Toplama
Bazı para birimi değerleri ile ifade edilen bazı basit tutarlar yapmak istiyorum BigDecimal. BigDecimal test = new BigDecimal(0); System.out.println(test); test.add(new BigDecimal(30)); System.out.println(test); test.add(new BigDecimal(45)); System.out.println(test); Açıkçası BigDecimalaritmetiği iyi anlamıyorum , arkasındaki çıktıya bakın. Test 0 0 0 Biri bana yardım edebilir mi?
155 java  bigdecimal 

2
Ölçek ve yuvarlak
Bu iki çağrı arasındaki fark nedir? (Var mı?) // 1. new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
140 java  bigdecimal 

8
BigDecimal'i Tamsayıya Dönüştürme
Bana bir BigDecimal döndüren Hibernate yöntemim var. Bu sayıyı geçirmem gereken başka bir API yöntemim var, ancak Tamsayı parametre olarak kabul ediyor. Her iki yöntemin dönüş türlerini veya değişken türlerini değiştiremiyorum. Şimdi BigDecimal'i Tamsayıya nasıl dönüştürebilir ve ikinci yönteme nasıl geçirebilirim? Bundan bir çıkış yolu var mı?


9
Güvenli String'den BigDecimal'e dönüştürme
Dizeden bazı BigDecimal değerleri okumaya çalışıyorum. Şu dizeye sahip olduğumu varsayalım: "1,000,000,000.999999999999999" ve bundan bir BigDecimal almak istiyorum. Bunu yapmanın yolu nedir? Her şeyden önce, dize değiştirmeleri kullanan çözümleri (virgül değiştirme vb.) Sevmiyorum. Bu işi benim için yapacak düzgün bir formatlayıcı olması gerektiğini düşünüyorum. Bir DecimalFormatter sınıfı buldum, ancak iki …
120 java  parsing  bigdecimal 

21
Saniye değeri saat dakika saniyeye dönüştürülsün mü?
Bir saniye değerini (bir BigDecimal değişkeninde) "1 saat 22 dakika 33 saniye" gibi bir editText dizgesine veya benzeri bir şeye dönüştürmeye çalışıyorum. Bunu denedim: String sequenceCaptureTime = ""; BigDecimal roundThreeCalc = new BigDecimal("0"); BigDecimal hours = new BigDecimal("0"); BigDecimal myremainder = new BigDecimal("0"); BigDecimal minutes = new BigDecimal("0"); BigDecimal seconds …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.