Etiket arşivi: divide()

Java BigDecimal.divide() fonksiyonu

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.