プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

下記Perlのドキュメントが分かりやすいかと。



http://perldoc.perl.org/functions/int.html
http://perldoc.jp/func/int
    • good
    • 0
この回答へのお礼

情報をご提供いただきありがとうございます。
intはいろいろ問題がありそうなので、他の方法を使用することにします。
ご回答ありがとうございました。

お礼日時:2012/08/17 18:01

printf "%.15f\n", 1080/1.08;


の結果を見ればわかるかと.

この回答への補足

結果確認しました。
1000にはなっていないようですね。
逆に、2のパターンで、1000が表示されるのは何故なんでしょうか?

補足日時:2012/08/17 09:04
    • good
    • 0

StrawberryPerl-5.14.2とPerl-5.10.1では、2の結果が違うなぁ。


ActivePerlでは
 print int(1080) / 1.08;
と解釈されてるんでしょうね。
    • good
    • 0

手元で試してみた... んだけど, 2 の結果は 999 になってる.



ちなみに Windows Vista Business, ActivePerl は 5.14.2 Build 1402 および 5.16.0 Build 1600 で確認.

なお, 構文解釈上 2 と 3 は同じなので同じ結果になるはずです.
    • good
    • 0
この回答へのお礼

自分でも他のバージョンで確認してみました。
確かに2の結果は「999」となるようです。
intはいろいろ問題がありそうなので、他の方法を使用することにします。
ご回答ありがとうございました。

お礼日時:2012/08/17 18:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!