- 締切済み
整数の表現について
もし、数字が整数だった場合はこのA処理を もし、数字が小数点を含む数字だった場合はB処理をというようなIF文を作りたいのですが”整数” ”小数点” をどのように表現するのか解りません。 どうか教えて頂けないでしょうか。 又、違う表現等があった場合もあるのでしょうかお願します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kawa-sin
- ベストアンサー率0% (0/0)
if ( $data =~ /\.+/ ){ B処理 print "少数\n"; }else{ A処理 print "不少数\n"; } でどうですか?
えーと、1つ確認していただきたいんですが、たとえば「4.0」は整数でしょうか? もしそうであれば、 if (int($number) == $number) {} else {} 俺の経験上、これが一番確実です。
- heather
- ベストアンサー率0% (0/5)
$ perldoc -q integerで探したらありました。 以下抜粋。 How do I determine whether a scalar is a number/whole/integer/float? Assuming that you don't care about IEEE notations like "NaN" or "Infinity", you probably just want to use a regular expression. if (/\D/) { print "has nondigits\n" } if (/^\d+$/) { print "is a whole number\n" } if (/^-?\d+$/) { print "is an integer\n" } if (/^[+-]?\d+$/) { print "is a +/- integer\n" } if (/^-?\d+\.?\d*$/) { print "is a real number\n" } if (/^-?(?:\d+(?:\.\d*)?|\.\d+)$/) { print "is a decimal number" } if (/^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/) { print "a C float" } 抜粋終
- yuizuian
- ベストアンサー率42% (103/245)
if ($A =~ /\./) {…} else {…} という感じで、「小数点があるか」で判定してはどうでしょう?