- ベストアンサー
double型の精度
static doubleで配列を作り 0.3454703165とセットして 宣言しました。 しかし、実行してウォッチで見ると 0.345470316499999になってしまいます。 なぜでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
floatでもdoubleでも内部では2進数で数値を表しています。 例として小数点以下は 0.1(2進)・・0.5 0.01・・・・・0.25 0.001・・・・0.125 このやり方で10進数→2進数→10進数とやると必ず元に戻るとは限りません。 2進数の桁数の限界による変換誤差ですね。