如何在Java中显示十进制数?

时间:2014-04-22 14:26:48

标签: java android

我使用float来显示十进制数字,但有时它不会显示正确的结果。

例如,对于6.2 / 1000,结果为0.0061999997。

我知道为什么会这样,但我想知道有没有办法显示正确的结果,在这种情况下,0.0062?

编辑: How to round a number to n decimal places in Java没有回答我的问题,为什么你在其他地方已经回答了我的问题?

我写的数字只是一个例子。在app中,用户可以输入任意数字并使用任何其他数字除以/乘数,因此结果可能没有任何小数点,也许它将有4位小数,也许它将有7位小数,...

2 个答案:

答案 0 :(得分:7)

首先,您需要了解这不仅仅是 display 问题 - 如果您想避免显示不正确的值,那么正确的值会有所帮助从...开始。

您应该使用BigDecimal代替float。它将值存储为由10 {sup> exp 因子缩放的整数,而不是doublefloat使用的2 exp

如果BigDecimal.toString没有按照您希望的方式格式化结果,请使用DecimalFormat来执行格式化。

答案 1 :(得分:0)

格式化小数位用法:

DecimalFormat df = new DecimalFormat();
        df.setMaximumFractionDigits(decimalPlace);
        String formatedValue = df.format(value);

希望这会解决您的疑问。

相关问题