Tag Archive for 'java.math.BigDecimal'

java.math.BigDecimal ile dört işlem…

Yine bir ipucu ile karşı karşıyayız. Belki bu yazıyı okuyanlardan bunu bilenler vardır, asıl amaç zaten kendi öğrendiğim ve unutup da tekrar hatırladığım şeyleri buraya yazarak bilmeyenler veya benim gibi unutanlar için bir arşiv oluşturmak. Neyse lafı uzatmadan bugünki ipucumuz neymiş bir göz atalım.

Java’da eğer BigDecimal ile aritmetik işlemler yapmak istiyorsanız bunu Integer tipindeki veriler gibi yapamıyorsunuz; yani

Java
1
2
3
Integer a = new Integer(2);
Integer b = new Integer(5);
Integer c = null;

olsun a ve b’yi toplayıp sonucu da c’ye eşitlemek bildiğiniz gibi çok kolay:

Java
1
c = a+b;

Amma velakin baktık gördük ki

Java
1
java.math.BigDecimal

tipindeki değişkenlerde böyle olmuyormuş toplama işlemi veya diğer aritmetik işlemler. Onda ise şu şekilde yapabiliyormuşuz:

Java
1
2
3
4
5
6
7
BigDecimal a = new BigDecimal("5.25");
BigDecimal b = new BigDecimal("9.86");
BigDecimal c = null;
c = a.add(b); // a+b
c = a.subtract(b); // a-b
c = a.divide(b); // a/b
c = a.multiply(b); // a*b

BigDecimal ile dört işlemimiz yukarda görüldüğü gibi yapılıyor. Herkes bilir ama söylemekte yine fayda var; toplama ve çarpma işleminde farketmez ama çarpma ve bölme işlemlerinde sıralamalara dikkat etmek gerekli zira

Java
1
a.divide(b);

ile

Java
1
b.divide(a);

belli durumlar dışında aynı sonucu vermezler.

Herkese kolaylıklar…