ホームページ >バックエンド開発 >PHPチュートリアル >PHP で数値を決定する方法 (数値文字列はカウントされません)

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

WBOY
WBOYオリジナル
2016-06-23 14:37:251126ブラウズ

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

オンラインで調べたところ、ほとんどの人が 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" と比較します。 ただし、一致する場合、それは数値です。これは、文字列を比較し、比較的遅いため、上記ほど効率的ではありません

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

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php require_once次の記事:php require_once