如何在Java中显示十进制数字?
我使用float来显示十进制数,但有时它不能显示正确的结果 例如,对于6.2/1000,结果为0.0061999997 我知道为什么会发生这种情况,但我想知道是否有办法显示正确的结果,在本例中为0.0062 编辑: 没有回答我的问题,那么你为什么把我的问题标记为已经在其他地方得到了回答如何在Java中显示十进制数字?,java,android,Java,Android,我使用float来显示十进制数,但有时它不能显示正确的结果 例如,对于6.2/1000,结果为0.0061999997 我知道为什么会发生这种情况,但我想知道是否有办法显示正确的结果,在本例中为0.0062 编辑: 没有回答我的问题,那么你为什么把我的问题标记为已经在其他地方得到了回答 我写的数字只是一个例子。在应用程序中,用户可以输入任何数字并将数字与任何其他数字相除/相乘,因此结果可能没有小数点,可能有4位小数,可能有7位小数,首先,您需要了解这不仅仅是一个显示问题-如果您希望避免显示错误的
我写的数字只是一个例子。在应用程序中,用户可以输入任何数字并将数字与任何其他数字相除/相乘,因此结果可能没有小数点,可能有4位小数,可能有7位小数,首先,您需要了解这不仅仅是一个显示问题-如果您希望避免显示错误的值,它有助于从正确的值开始 您应该使用而不是浮动。它将值存储为按10exp因子缩放的整数,而不是double和float使用的2exp
如果BigDecimal.toString未按您希望的方式格式化结果,请使用执行格式化。格式化小数位使用以下方法:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(decimalPlace);
String formatedValue = df.format(value);
希望这能解决您的问题。使用十进制格式是,使用舍入。如果需要任意精度,可能需要BigDecimal。这不是重复的!