这里是小代码来说明我所看到的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'。 –