• ベストアンサー

intの挙動?

Perlのintをつかって整数化をしているのですが、すこし挙動がおかしいというか 正確な数値が出ませんので質問させていただきました。 $aaa = 21000*0.7; $aaa = int($aaa); print $aaa; 結果:14699 となります。 21000×0.7は14700のはずかと思いますが、なぜか14699になってしまいます。 どう考えてもわからなくなってきました。 どなたかご教授いただけませんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>21000×0.7は14700のはずかと思いますが、なぜか14699になってしまいます。 浮動小数点の誤差…でしょう。 http://d.hatena.ne.jp/perlcodesample/20080828/1219924206 とか見てみるとよいかと。 21000×7÷10で計算してみてはどうですかね?

titikun00
質問者

お礼

早速のご連絡ありがとうございます。 21000×7÷10ですとうまくいきました。 小数点の誤差というものがあるということをはじめて知りました。 今後は一旦小数を整数に直してから最後に割るようにしてみます。 ありがとうございました。

関連するQ&A