- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:繰り返し文における小数の挙動)
繰り返し文における小数の挙動
このQ&Aのポイント
- 繰り返し文で小数を操作する際に、表示がおかしくなる現象が発生しています。
- 具体的には、0.001ずつ増加する変数に途中から0.000000000001が加わってしまいます。
- この挙動を止める方法や原因について教えていただけないでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>原因、解決策等おわかりであれば 「浮動小数点 誤差」で検索して下さい。 今回の場合、増分が0.001なので…… 1000倍の下駄を履かせて扱う。って方法があるかと。 「固定小数点 下駄」辺りで検索して下さい。
お礼
ご返信ありがとうございました。調べてみました。 ・コンピューターの実際の計算では、2進法を使っているので小数点を扱う際に不都合が出てくる場合がある。 ・そこで、整数にて繰り返し文を行い、誤差の蓄積を防ぐ。 以上のような理解であっているでしょうか。これを踏まえてプログラムを書き換えると以下のようになりますが、確かにこれでうまくいきました。ありがとうございました。 for(my $i=10;$i<=1000;$i+=1) { print $i/1000,"\n"; } しかし、ここでもう一つ疑問が浮かぶのですが、確かにこの「浮動小数点」に関するウェブページはたくさん存在しているものの、小数の代わりに一旦整数を用いるような以上の手法は日常的にプログラミングをされているプログラマーの方も一般的に用いる手法なのでしょうか。