- ベストアンサー
perl intの動作について
Perlのintについてですが、以下の3の計算結果が異なる理由を教えてください。 1:print 1080/1.08; →「1000」と表示される 2:print int 1080/1.08; →「1000」と表示される 3:print int(1080/1.08); →「999」と表示される Perlのバージョン:ActivePerl v5.14.2 OS:Windows XP
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
手元で試してみた... んだけど, 2 の結果は 999 になってる. ちなみに Windows Vista Business, ActivePerl は 5.14.2 Build 1402 および 5.16.0 Build 1600 で確認. なお, 構文解釈上 2 と 3 は同じなので同じ結果になるはずです.
その他の回答 (3)
- kuroizell
- ベストアンサー率55% (95/170)
回答No.3
StrawberryPerl-5.14.2とPerl-5.10.1では、2の結果が違うなぁ。 ActivePerlでは print int(1080) / 1.08; と解釈されてるんでしょうね。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
printf "%.15f\n", 1080/1.08; の結果を見ればわかるかと.
質問者
補足
結果確認しました。 1000にはなっていないようですね。 逆に、2のパターンで、1000が表示されるのは何故なんでしょうか?
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
下記Perlのドキュメントが分かりやすいかと。 http://perldoc.perl.org/functions/int.html http://perldoc.jp/func/int
質問者
お礼
情報をご提供いただきありがとうございます。 intはいろいろ問題がありそうなので、他の方法を使用することにします。 ご回答ありがとうございました。
お礼
自分でも他のバージョンで確認してみました。 確かに2の結果は「999」となるようです。 intはいろいろ問題がありそうなので、他の方法を使用することにします。 ご回答ありがとうございました。