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))); 

部門1についても同様です。

muliply関数とdivide関数は整数(例:5 * 4出力20.00000000)でうまく機能しますが、小数点以下の桁数(例:5.3 * 4)の数字を処理する場合、21.12000089として出力されます。これは正しくありません。

何が問題ですか?また、不要なゼロを削除するために出力を表示に設定するにはどうすればよいですか?たとえば、5 * 4の場合、最終的な答えとして20.000000ではなく20しか表示されませんか?最終的な答えとして、21.12000000ではなく5.3 * 4 = 21.12の場合はどうなりますか?

どうもありがとう!

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 に答える