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

如何在Java中显示十进制数字?,java,android,Java,Android,我使用float来显示十进制数,但有时它不能显示正确的结果 例如,对于6.2/1000,结果为0.0061999997 我知道为什么会发生这种情况,但我想知道是否有办法显示正确的结果,在本例中为0.0062 编辑: 没有回答我的问题,那么你为什么把我的问题标记为已经在其他地方得到了回答 我写的数字只是一个例子。在应用程序中,用户可以输入任何数字并将数字与任何其他数字相除/相乘,因此结果可能没有小数点,可能有4位小数,可能有7位小数,首先,您需要了解这不仅仅是一个显示问题-如果您希望避免显示错误的

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

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

我知道为什么会发生这种情况,但我想知道是否有办法显示正确的结果,在本例中为0.0062

编辑: 没有回答我的问题,那么你为什么把我的问题标记为已经在其他地方得到了回答


我写的数字只是一个例子。在应用程序中,用户可以输入任何数字并将数字与任何其他数字相除/相乘,因此结果可能没有小数点,可能有4位小数,可能有7位小数,

首先,您需要了解这不仅仅是一个显示问题-如果您希望避免显示错误的值,它有助于从正确的值开始

您应该使用而不是浮动。它将值存储为按10exp因子缩放的整数,而不是double和float使用的2exp


如果BigDecimal.toString未按您希望的方式格式化结果,请使用执行格式化。

格式化小数位使用以下方法:

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

希望这能解决您的问题。

使用十进制格式是,使用舍入。如果需要任意精度,可能需要BigDecimal。这不是重复的!