Java BigDecimal.divide() fonksiyonu
Posted: Aralık 22nd, 2008 | Author: Hüseyin Berberoğlu | Filed under: Java | Tags: BigDecimal, divide(), Java, java.math | 4 Comments »Java’da iki BigDecimal değeri divide() fonksiyonu ile bölmek istediğimde şu hatayı aldım;
Non-terminating decimal expansion; no exact representable decimal result.
Hatayı almamın sebebi divide fonksiyonunu yanlış kullanmammış. Şöyle iki değişkenimiz olsun;
BigDecimal sayi1 = BigDecimal.valueOf(100); BigDecimal sayi2 = BigDecimal.valueOf(50);
Bunları bölmeye çalışalım;
sayi1.divide(sayi2);
İlgili referans sayfasından da görebileceğiniz gibi bu şekilde bir kullanım yanlış. roundingMode parametresini kullanmamız zorunlu. Peki roundingMode kullanmadan bölmek mümkün mü ? Ben böyle yaptım (alttaki kod tek satır));
BigDecimal sonuc = new BigDecimal(sayi1.doubleValue() / sayi2.doubleValue());
Bu kod çalıştı. Bunun daha iyi bir yolu varsa yorum olarak yazarsanız sevinirim.