こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

整数の表現について

もし、数字が整数だった場合はこのA処理を
もし、数字が小数点を含む数字だった場合はB処理をというようなIF文を作りたいのですが”整数” ”小数点” をどのように表現するのか解りません。
どうか教えて頂けないでしょうか。
又、違う表現等があった場合もあるのでしょうかお願します。

投稿日時 - 2001-12-19 10:18:19

QNo.187512

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

if ( $data =~ /\.+/ ){
B処理
print "少数\n";
}else{
A処理
print "不少数\n";
}

でどうですか?

投稿日時 - 2002-01-07 17:11:38

ANo.3

 えーと、1つ確認していただきたいんですが、たとえば「4.0」は整数でしょうか?

 もしそうであれば、

if (int($number) == $number) {} else {}

 俺の経験上、これが一番確実です。

投稿日時 - 2001-12-19 11:16:59

ANo.2

$ 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" }


抜粋終

投稿日時 - 2001-12-19 10:39:15

ANo.1

if ($A =~ /\./) {…}
else {…}
という感じで、「小数点があるか」で判定してはどうでしょう?

投稿日時 - 2001-12-19 10:32:22

あなたにオススメの質問