float値がdouble値と異なる理由がわかりません。以下の例から、floatは同じ操作に対してdoubleとは異なる結果を提供するように見えます。
public class Test {
public static void main(String[] args) {
double a = 99999.8d;
double b = 99999.65d;
System.out.println(a + b);
float a2 = 99999.8f;
float b2 = 99999.65f;
System.out.println(a2 + b2);
}
}
出力:
199999.45
199999.44
フロートとダブルのこの違いの理由を説明できますか?