在特定情况下舍入

时间:2017-05-28 18:13:03

标签: java formatting double rounding decimalformat

我正在尝试创建一个计算器应用程序,当我在前面添加三个双打时。 (1.1 + 1.1 + 1.1)返回3.3000000000000003。只有当三个数字加在一起时才会出现(1.1 + 1.1)返回2.2

只有当一行中的2位数为零时才能使用十进制格式进行舍入以防止这种情况发生吗?

谢谢!

如果您需要查看更多我的代码,请告诉我,我认为这已经足够,但我可能错了。

等于按钮方法

equals_button_IB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //new value being added everytime addition button is pressed, last number to be added will not have addition button
                //pressed after it, so this adds the last value to the values array list
                values.add(current_screen_value);
                System.out.println(values);
                double sum = 0;
                for(int i = 0; i<values.size(); i++){
                    sum+= Double.parseDouble(values.get(i));
                }
                System.out.println(sum);
                clearScreen(null);
                updateScreen(String.valueOf(sum));


            }
        });

1 个答案:

答案 0 :(得分:1)

这可能是因为Double数字的编码。 要解决此问题,您可以使用BigDecimal类(如here