Değer 200.3456
ise, 200.34
olarak biçimlendirilmelidir.
Eğer 200
ise, o zaman 200.00
olmalıdır.
Sadece ondalık noktadan sonra iki basamaklı bir double
yazdırmak istiyorsanız, aşağıdaki gibi bir şey kullanın:
double value = 200.3456;
System.out.printf("Value: %.2f", value);
Sonucun konsola yazdırılması yerine bir String
içinde olmasını istiyorsanız, aynı argümanlarla String.format()
kullanın:
String result = String.format("%.2f", value);
Veya DecimalFormat
sınıfını kullanın:
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
En kolay yol, şöyle bir numara yapmak olacaktır;
double val = ....;
val = val*100;
val = Math.round(val);
val = val /100;
val 200.3456'dan başlarsa, 20034.56'ya gider, sonra 20035'e yuvarlanır, sonra 200.34'ü elde etmek için böleriz.
her zaman aşağı yuvarlamak isterseniz, int değerine dönüştürerek her zaman kesebiliriz:
double val = ....;
val = val*100;
val = (double)((int) val);
val = val /100;
Bu teknik çoğu durumda işe yarayacaktır, çünkü çok büyük çiftler (pozitif veya negatif) için taşabilir. ancak değerlerinizin uygun bir aralıkta olacağını biliyorsanız, bu sizin için çalışmalıdır.
Çift yuvarlamak genellikle istenilen bir şey değildir. Bunun yerine, istenen biçimde göstermek için String.format()
kullanın.