這裏是小代碼來說明我所看到的DecimalFormat的四捨五入
float floater = 59.999f;
DecimalFormat df = new DecimalFormat("00.0");
System.out.println(df.format(floater));
此打印:
60.0
我想它打印
59.9
我需要做什麼來做?
這裏是小代碼來說明我所看到的DecimalFormat的四捨五入
float floater = 59.999f;
DecimalFormat df = new DecimalFormat("00.0");
System.out.println(df.format(floater));
此打印:
60.0
我想它打印
59.9
我需要做什麼來做?
使用DecimalFormat
之前添加此行:
df.setRoundingMode(RoundingMode.DOWN);
看看其他舍入模式,看看哪一個最適合你。
注意:此方法僅適用於JDK 1.6或更高版本
[DecimalFormat.setRoundingMode(java.math.RoundingMode)](http://docs.oracle.com/javase/7 /docs/api/java/text/DecimalFormat.html#setRoundingMode(java.math.RoundingMode)) – Julien
float d = 59.999f;
BigDecimal bd = new BigDecimal(d);
// Use the returned value from setScale, as it doesn't modify the caller.
bd = bd.setScale(1, BigDecimal.ROUND_FLOOR);
String formatted = bd.toString();
通常這是不好的決定,因爲它會改變數據,而我們需要更改視圖 –
@ om-nom-nom:我寧願說這太糟糕了。並且需要創建一個BigDecimal。但至於它如何「改變數據」 - 我沒有看到......原始的浮動塊是未觸及過的,可供任何東西使用。你會詳細說明你的評論嗎? – ppeterka
@ppeterka公平點。這比一年前少了一點,可能我是從這個角度思考的,我怎麼輪到我的bigdecimal *的觀點,現在不能說 –
請查看'Math.round'。 –