[perl] 文字列を数値にする時の注意

メモレベル。

当たり前の事なんですが、文字列→数値変換する際には、数値変換できない場合があるって事を頭にとめておく必要があります。
それが、言語によってちと違う。

perlの場合、int関数をつかうわけなんですが、こいつは変換できなかったら0を返却します。


 ・"123" → 123
 ・"abc" → 0

まあ、この辺はまだいいのですけれど、数値にできない文字とそうでない文字が混じっている場合は途中まで変換するという事に。

例2
 ・"-1" → -1
 ・"123a" → 123
 ・"123a456" → 123
 ・"a456" → 0


さて、これはintに限ったことではない、という事ですね。
比較演算子もそうです。

<=>などの場合も算術比較演算子もそうだって事です。


"123a456" == 123 and print "here1\n";
"a456" == 0 and print "here2\n";

→結果はhere1とhere2が出ます。

まあ、つうわけで、そういう比較の時には十分注意しましょう、という事ですねえ。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック