Loo*_*oii 2 java double rounding
我想围绕这个双倍:
3.499999999999999
Run Code Online (Sandbox Code Playgroud)
至:
3.50
Run Code Online (Sandbox Code Playgroud)
我已经使用了这两种方法:
DecimalFormat df = new DecimalFormat("0.00");
double result = Double.valueOf(df.format(input));
System.out.println(answer);
Run Code Online (Sandbox Code Playgroud)
和
public double round(double input)
{
int decimalPlace = 2;
BigDecimal bd = new BigDecimal(input);
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
return (bd.doubleValue());
}
Run Code Online (Sandbox Code Playgroud)
但它继续印刷:
3.5
Run Code Online (Sandbox Code Playgroud)
有人有解决方案吗?因为我真的认为这应该有效.谢谢你的帮助.
Jon*_*ght 14
你的第一个解决方案非常非常接近.这样做:
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(input));
Run Code Online (Sandbox Code Playgroud)
你的版本不起作用的原因是你正在使用inputdouble,将其格式化为String2dp,然后将其转换回a double. System.out.println然后按double原样打印,没有特殊的小数位规则.
| 归档时间: |
|
| 查看次数: |
6049 次 |
| 最近记录: |