我在项目中使用双精度值,并且我希望始终显示前两位小数,即使它们为零。我使用此函数进行舍入,如果我打印的值是 3.47233322,它(正确地)打印 3.47。但是,例如,当我打印值 2 时,它会打印 2.0。
public static double round(double d) {
BigDecimal bd = new BigDecimal(d);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
}
我想打印2.00!
有没有办法在不使用字符串的情况下做到这一点?
编辑:从你的回答(我感谢你)我知道我不清楚我正在搜索什么(对此我很抱歉):我知道如何使用你的解决方案在数字后打印两位数字建议...我想要的是直接将两位数字存储在双精度值中!所以当我做这样的事情时System.out.println("" + d)
(其中 d 是我的双精度值,值为 2)它打印 2.00。
我开始认为没有办法做到这一点......对吧?无论如何,再次感谢您的回答,如果您知道解决方案,请告诉我!
你可以使用这样的东西:
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.00");
System.out.print(df.format(d));
编辑以实际回答这个问题,因为我需要真正的答案,这出现在谷歌上,有人将其标记为答案,尽管事实上当小数为 0 时这不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)