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.
Favorilerime Ekle