DecimalFormat
numaranın bir BigDecimal
numarasının ve diğer makinede yuvarlandığı durumu analiz ediyordum.DecimalFormat, farklı makinelerde iki farklı sonuçla sonuçlanır
İki makinedeki tüm yapılandırmaları doğruladım (ve hepsinin aynı olduğunu varsayalım). Sadece fark ettiğim fark JDK sürümüdür.
Makine 1, JDK1.6 üzerinde çalışıyor. Ancak, 1 Makine üzerinde JDK1.7 ile aynı denedim, JDK1.6 ile aynı şekilde çalışıyor.
Makine 1 Sonuç olarakDecimalFormat decimalFormat = new DecimalFormat("#,###.00");
BigDecimal anObject = new BigDecimal("3.8880");
String str = decimalFormat.format(((Number)anObject).doubleValue());
System.out.println(str);
geçerli:: Makine 2 sonuç üzerinde 3.39
geçerli: 3,38
Sayı 3.8880'in 3.38 veya 3.39'a nasıl yuvarlanabileceğini veya kesileceğini anlamıyorum. 3.88/3.89 mu demek istiyorsun? Yoksa testi doğru yapmadın mı? –
"java -version" komut isteminde çalıştırmayı deneyin. Belki sadece bir JVM hatası. – Aris2World