0

嗨,我正在开发一个 android 计算器应用程序,现在正在处理操作。我已经定义了以下内容:

ArrayList<Float> inputnum = new ArrayList<Float>(); 
float inputnum1; 
float inputnum2; 

然后对于操作,

case MULTIPLY: 
inputnum1 = inputnum.get(0); 
inputnum2 = inputnum.get(1); 
inputnum.add(inputnum1 * inputnum2);  
Display.setText(String.format("%.9f", inputnum.get(0))); 

类似的第一个分区。

muliply 函数和 divide 函数对整数很有效(例如 5*4 输出 20.00000000)但是,当它处理带小数位的数字时,例如 5.3 * 4,它输出为 21.12000089,这是不正确的。

问题是什么?另外,如何将输出设置为显示以删除不必要的零?例如,当 5*4 它只显示 20 而不是 20.000000 作为最终答案?当 5.3*4 = 21.12 而不是 21.12000000 作为最终答案时?

非常感谢!

4

1 回答 1

0

只需将所有相关的 float 更改为 double 即可避免出现舍入错误。

如果想通过在点后补零来表示 9 位小数,例如 7.56 变为 7.560000000,可以使用以下编码。

Display.setText(String.format("%.9f", inputnum.get(0)));  
于 2012-08-24T03:13:50.897 回答