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 です
どんな助けでもいただければ幸いです