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); |
BigDecimal sayi1 = BigDecimal.valueOf(100); BigDecimal sayi2 = BigDecimal.valueOf(50);
Bunları bölmeye çalışalım;
sayi1.divide(sayi2); |
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()); |
BigDecimal sonuc = new BigDecimal(sayi1.doubleValue() / sayi2.doubleValue());
Bu kod çalıştı. Bunun daha iyi bir yolu varsa yorum olarak yazarsanız sevinirim.