-4

Double.valueOf(String s) 関数を使用して文字列を double に変換し、それを 100 倍にしようとしています。結果は、一部を除いてほとんどの数値で正常に機能します。たとえば、金額が 10.20 で、Double.valueOf(10.20) * 100 を使用すると、結果は 1020.0 ではなく 1019.9999 になります。これは、10.20、8.20、9.20 でのみ発生します。7.20、1.20、11.20 などで正常に動作します。この理由は何ですか? 以下は私のコードのスニペットです

最初のシナリオ

文字列 s = "10.20"; *System.out.println("二重操作後の値は" +(Double.valueOf(firstHalf) 100 ));

結果:- 二重操作後の値は 1019.9999999999999 です

実際の結果は 1020.0 になるはずです。以下を指定すると、正常に動作します

シナリオ2

*文字列 s = "7.20"; System.out.println("二重操作後の値は" +(Double.valueOf(firstHalf) 100 ));

結果:- 二重操作後の値は 720.0 です

どんな助けでもいただければ幸いです

4

2 に答える 2