Java’da uygulama yazarken neden double neden BigDecimal kullanmalıyız? Farkı nedir?
comments
2 references
// Comments are closed.
Java’da uygulama yazarken neden double neden BigDecimal kullanmalıyız? Farkı nedir?
// Comments are closed.
Bir örnek üstünden ilerleyelim. Elimizde aşağıdaki gibi iki değer olsun. Bu değerleri hem BigDecimal, hem double olarak tanımlayalım ve çalıştıralım.
Sonucun aşağıdaki gibi olduğunu göreceksiniz. Eğer kullandığınız projede virgülden sonraki değerlerin hassasiyeti ve önemi bulunuyorsa yani yuvarlama yapmadan net sonucun görünmesi gerekiyorsa BigDecimal kullanılmalıdır. Sonucun virgül sonraki değerlerinin hassasiyeti önemli değilse ve yuvarlanmış bir değer olması isteniyorsa double tercih edilebilir.
Benim dikkatimi çeken eğer BigDecimal kullanıyorsan operator overloading olmadığından dört işlem için +-/* kullanamıyorsun. Onun yerine metodları var. Çok kullanışlı gelmiyor o yüzden. Ayrıca aşağıdaki kod da hata veriyor. Dikkat edilmesi gerekir.
Alınan hata da
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Bitmeyen sayı yapmışlar.
Bu güzel soru olur. Başka sorayım.