嗨,我正在开发安卓计算器应用程序,现在正在进行操作。我定义了以下内容:
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,这是不正确的。
问题出在哪里?另外,如何将输出设置为Display以删除不必要的零?例如当5*4时,它只显示20而不是20.000000作为最终答案?当5.3*4=21.12而不是21.12000000作为最终答案时?
非常感谢!
只需将所有相关的浮点值更改为双,就可以避免出现舍入误差。
如果想通过在点后填充零来表示小数点后9位,例如7.56变成7.560000000,可以使用以下编码。
Display.setText(String.format("%.9f", inputnum.get(0)));