Decimals such as 0.1 and 0.2 equal 0.30000000000000004
本问题已经有最佳答案,请猛点这里访问。
我有一个按钮,当我按下它时,我希望它更新一个标签(从0.0开始)到+0.1
我得到以下信息:
1 2 3 4 5 6 7 8 9 10 | 0.1 0.2 0.30000000000000004 0.4 0.5 0.6 0.79999999999999999 0.89999999999999999 0.99999999999999999 1.09999999999999999 |
我的密码是:
1 2 3 4 |
号
我知道计算机处理数字的方式不完全是0.3,而更像是0.2999999…我只是想找一种方法把数字四舍五入,这样我就可以很容易地把0.1(to)0.9加在一起,而不需要大量的小数点。
我已经尝试添加
尽管它向下舍入到0,所以标签不会更新。
如果需要精确的十进制加法,则需要使用
1 2 3 4 | BigDecimal number = new BigDecimal(txtNumber.getText()); BigDecimal generator = new BigDecimal("0.1"); // The"" marks are important number = number.add(generator); txtNumber.setText(number.toString()); |
有些小数不能用
您可以使用一种格式,使用以下代码将数字四舍五入为一位小数:
1 2 |
号