PHP で数値を決定する方法 (数値文字列はカウントされません)

WBOY
リリース: 2016-06-23 14:37:25
オリジナル
1125 人が閲覧しました

この質問を見たとき、最初はとても簡単なはずだと思いました〜そしてメソッドは複数あります

オンラインで調べたところ、ほとんどの人が is_numeric メソッドを使用しており、その後に次のような文が続くことがわかりました。問題は複雑すぎるので、使用しないでください...

私は自分でテストしましたが、マニュアルにある is_numeric の内容は次のとおりです。変数が数値であるか数値であるかを検出します。 string、数値文字列

$a = "000022153.26";echo is_numeric($a) ? "Y" : "N";
ログイン後にコピー

結果は Y

を示します。明らかに、これは私が望む答えではありません。is_numeric は数値または a なので、別の方法を考えました。

if (! is_string ( $a )) {    if (is_numeric ( $a )) {        echo "Y";        exit ();    }}echo "N";
ログイン後にコピー

得られた結果は正しい、N。その後、誰かが is_nan を使用するよう促しているのを見て、最終的に画面に N が表示されました。最初は私が正しいと思って記事を直接投稿しましたが、実際は間違っています。マニュアルでの is_nan の意味は、数値が数値以外であるかどうかを判断することです。 $a が文字列型文字列の場合、例えば「a」を使用すると直接エラーが報告されるため、is_nan を使用して変数が文字列であるかどうかを判断することはできません

echo  is_nan($a) ? "Y" : "N"
ログイン後にコピー

そして、マニュアルを読んだ後、私は最も簡単な方法を見つけました

$a="0002133.226";if(is_int($a) || is_float($a)){    echo "Y";      }else{ echo "N";}
ログイン後にコピー

対応する gettype($a) を使って、それを "integer" と "double" と比較します。 ただし、一致する場合、それは数値です。これは、文字列を比較し、比較的遅いため、上記ほど効率的ではありません

記事を読んだだけの人が誤解を招いたら大変申し訳ありません

小さな一歩を踏み出さなければ、千マイルに到達することはできません

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート