この記事では、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() 関数は理解できました。 |