double temp = 64.1;
System.out.println("Result = " + (temp*1000));
結果は次のようになります。ダブル乗算
Result = 64099.99999999999
しかし、実際の結果は、ダブルデータ型の場合は
double a = ((temp * 1000) % (0.5 * 1000));
a=7.275957614183426E-12;
の場合64100
する必要がありますキャストして浮上させる。
((((float) temp) * 1000) % (0.5 * 1000));
a=0.0;
この現象はなぜですか?
あなた64100 –
http://stackoverflow.com/questions/179427/how-to-resolve-a-java-rounding-doubleの重複としてこれを投票する答え-issue – Kerooker
[Java Rounding Double issueを解決する方法](http://stackoverflow.com/questions/179427/how-to-resolve-a-java-rounding-double-issue) – Kerooker