十进制格式舍入

2022-09-02 01:10:59

这是一个小代码来说明我所看到的

float floater = 59.999f;

DecimalFormat df = new DecimalFormat("00.0");

System.out.println(df.format(floater));

这打印:

60.0

我想打印

59.9

我需要做什么?


答案 1

在使用之前添加此行:DecimalFormat

df.setRoundingMode(RoundingMode.DOWN);

看看其他舍入模式,看看哪一个最适合你。

注意:此方法仅适用于 JDK 1.6 或更高版本


答案 2
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();