我正在使用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