【发布时间】:2013-06-08 06:11:01
【问题描述】:
我在我的项目中使用双精度值,我希望始终显示前两位十进制数字,即使它们是零。我使用此函数进行舍入,如果我打印的值为 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。
我开始认为没有办法做到这一点......对吗?再次感谢您的回答,如果您知道解决方案,请告诉我!
【问题讨论】:
-
我不认为你可以改变 java 存储双精度值的方式。您只能在呈现时修改它们的格式。
-
是的...我认为您是对的...每次向用户展示我的值时,我都必须对其进行格式化...很多次!谢谢你的回答!
-
好吧,你只需要编写一次格式化程序方法,我不会担心。 ; )
标签: java double number-formatting