ホームページ >バックエンド開発 >PHPチュートリアル >長い数値文字列の比較に関する問題

長い数値文字列の比較に関する問題

WBOY
WBOYオリジナル
2016-06-13 12:31:14722ブラウズ

長い数値文字列による比較の問題

この投稿は、anyilaoliu によって最終編集されました: 2013-12-13 15:04:43 タイトルのように
このような問題が発生しました

<br />
$a = "222111565652521142";<br />
		$b = "222111565652521139";<br />
		$c = 222111565652521142;<br />
		$d = 222111565652521139;<br />
<br />
		var_dump($a);<br />
		echo "<br/>";<br />
		var_dump($b);<br />
		echo "<br/>";<br />
		var_dump($c);<br />
		echo "<br/>";<br />
		var_dump($d);<br />
		echo "<br/>";<br />
<br />
		if ($a == $b) {<br />
			echo 3;<br />
		}else{<br />
			echo 31;<br />
		}<br />
		echo "<br/>";<br />
<br />
		if ($c == $d) {<br />
			echo 4;<br />
		}else{<br />
			echo 41;<br />
		}<br />
		echo "<br/>";<br />


結果は
です

<br />
<br />
<br />
string '222111565652521142' (length=18)<br />
<br />
<br />
string '222111565652521139' (length=18)<br />
<br />
<br />
float 2.2211156565252E+17<br />
<br />
<br />
float 2.2211156565252E+17<br />
<br />
<br />
<br />
31<br />
4<br />


ここで、2 番目のケースで 2 つをどのように比較するかという問題が生じます

質問 2: データベースから読み取られた 2 つの数値セットは、var_dump の後に string(18) として表示されます。ただし、比較結果は上記の例とはまったく逆になり、2 つの文字列が等しいかどうかの比較も成功します。

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