我正在使用android计算器。用户按1到9和小数点的按钮,然后inputnum(arraylist)将解析显示器作为输入,然后运行,然后显示答案。相关代码如下:Android计算器减法
ArrayList<Double> inputnum = new ArrayList<Double>();
double inputnum1;
double inputnum2;
...
inputnum.add(Double.parseDouble(Fakedisplay.getText().toString()));
case SUBTRACT:
inputnum1 = inputnum.get(0);
inputnum2 = inputnum.get(1);
inputnum.removeAll(inputnum);
inputnum.add(inputnum1 - inputnum2);
Fakedisplay.setText(String.format("%.19f", inputnum.get(0)));
String strf2=Fakedisplay.getText().toString();
String strippedf2 = Double.valueOf(strf2).toString();
if (strippedf2.endsWith(".0"))
strippedf2 = strippedf2.substring(0, strippedf2.length() - 2);
Fakedisplay.setText(strippedf2);
问题: 为1000.84 - 1000.01它将给0.830000000000041,这是不希望对演示文稿, 然而,这个问题仅仅只出现了减法,一模一样的附加编码,乘法和除法,但工作得很好,即:1000.84 + 1000.01呈现2000.85且不多,1000.84 * 1000.01 = 1000850.0084且不多,1000.84/1000.01也可正常显示。
为什么减法这么特别?如何处理它?
有啥问题? –
问题是:如何提供0.83而不是0.83000000041的确切答案。这是因为它适用于+,x,/除了减法。我想知道为什么减法是如此特别,看看是否有办法解决和作出更好的演示0.83大幅 – pearmak
非常感谢您的及时回复! – pearmak