0

重複の可能性:
Java: 間違った答えを返す計算?

次のプログラムが正しい出力を与えない理由を説明してください。

class Test
{
    public static void main(String aa[])
    {
        float a=16.15 f;
        float b =10.0f;

        float c =a-b;
        System.out.println(c);
    }
}

/****************/ 出力:-6.1499996

4

4 に答える 4

1

http://en.wikipedia.org/wiki/IEEE_floating-point_standardに従って、コードではなくフロート自体に問題があります

この場合、doubles またはBigDecimals の使用を検討してください。

于 2012-12-06T22:06:21.657 に答える
0

これは、float が10 進数値を正確に格納できないという完全に正常な結果です。

于 2012-12-06T22:04:38.390 に答える
0

float は底が 2 であるため、正確に 16.15 を表すことができないため、減算の結果は正確に -6.15 になりません。

于 2012-12-06T22:05:53.697 に答える
-1

この型floatには、-6.15 を返すのに十分な精度がありません。double浮動小数点計算には常にある程度の誤差があります。

于 2012-12-06T22:04:43.243 に答える