Windows 8 (Intel Atom Z3775) で次の方法を使用しています。
public static strictfp void main(String args[])
{
float a = 0.000000002f;
float b = 90000300000000004f;
float c = a * b;
System.out.println(c);
}
それは私に与える:1.80000592E8
実行時
public strictfp void calculate()
{
float a = 0.000000002f;
float b = 90000300000000004f;
float c = a * b;
Toast.makeText(getApplicationContext(), c + "", Toast.LENGTH_LONG).show();
}
私は得る: 1.8000059E8
なぜそれらは異なるのですか?strictfp を間違って使用していますか?