11

最近、次のコードを使用して聞いたことをテストしました

public static void main(String[] args) { double x = 4.35 * 100; System.out.println(x); }.

これが 435.0 ではなく 434.99999999999994 を生成する理由に興味があります。ありがとう

4

1 に答える 1

17

次のように入力します。

double x = 4.35;

xそのまま保存されません。近い形で格納されています (この場合はおそらく 4.349999999)。

正確な結果が必要な場合は、 を使用してくださいBigDecimal

浮動小数点技術の精度の問題について学ぶことができます。

于 2013-07-10T13:31:21.823 に答える