【发布时间】:2015-04-05 22:00:54
【问题描述】:
我已阅读此问题Round a double to 2 decimal places 它显示了如何舍入数字。我想要的只是简单的格式,只打印两位小数。 我所拥有的和我尝试过的:
double res = 24.695999999999998;
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(res)); //prints 24.70 and I want 24.69
System.out.println("Total: " + String.format( "%.2f", res )); //prints 24.70
所以当我有 24.695999999999998 时,我想将其格式化为 24.69
【问题讨论】:
-
或许正在寻找Math.floor(double)?
-
如果您代表的是货币,看起来您可能是,您是否可以不使用
long代替并代表确切的价值(以便士为单位)而不是诉诸double并提出浮点运算导致的误差范围?
标签: java formatting double