- ベストアンサー
intの挙動?
Perlのintをつかって整数化をしているのですが、すこし挙動がおかしいというか 正確な数値が出ませんので質問させていただきました。 $aaa = 21000*0.7; $aaa = int($aaa); print $aaa; 結果:14699 となります。 21000×0.7は14700のはずかと思いますが、なぜか14699になってしまいます。 どう考えてもわからなくなってきました。 どなたかご教授いただけませんでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>21000×0.7は14700のはずかと思いますが、なぜか14699になってしまいます。 浮動小数点の誤差…でしょう。 http://d.hatena.ne.jp/perlcodesample/20080828/1219924206 とか見てみるとよいかと。 21000×7÷10で計算してみてはどうですかね?
お礼
早速のご連絡ありがとうございます。 21000×7÷10ですとうまくいきました。 小数点の誤差というものがあるということをはじめて知りました。 今後は一旦小数を整数に直してから最後に割るようにしてみます。 ありがとうございました。