ホームページ  >  記事  >  バックエンド開発  >  PHPでのintval()のint変換時の予期せぬ事態の分析

PHPでのintval()のint変換時の予期せぬ事態の分析

WBOY
WBOYオリジナル
2016-07-25 08:58:271475ブラウズ
この記事では、PHP で intval() を使用して int を変換するときに発生する異常な状況と、その解決策を紹介します。

PHPのintval()関数のテストコード:

リーリー htmlコード:

演算結果:float(945) int(944) float(945) int(945)

説明: 9.45という数字は、見るとこんな感じですが、機械の中ではこれではなく、9.449999999999999999・・・となっています。それで: 9.449999*100 = 944.9999。 intval は仮数を直接削除します。このように、intval は Floor() 関数とほぼ同じです。 これは私が今まで気づかなかったことでした。間隔が切り捨てられることに気づきませんでした。 1.00 には 1.0099999 などというものはないので、945*1.00 の浮動小数点数は 945 になります。そうすると、intval 変換により 944 の状況が自然に回避されます。 また、次のような古典的な試験問題もいくつかあります。 intval((0.1+0.7)*10) は 8 ではなく 7 に等しいです。これはすべて真実です。

これはどうでしょうか。導入はここです。php の intval() 関数は理解できました。



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