ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルの intval() などの int 変換時の予期しない例外の解析

PHP_PHP チュートリアルの intval() などの int 変換時の予期しない例外の解析

WBOY
リリース: 2016-07-21 15:04:20
オリジナル
1260 人が閲覧しました

まず、以下のインターネット上のテスト コードを見てください:

コードをコピーします コードは次のとおりです:

$a = 9.45*100;
var_dump($a);
var_dump(intval($ a));
$a = 945*1.00;
var_dump($a);
var_dump(intval($a));
?> この状況に関するインターネット上の情報はすべて曖昧で理解不能です。ここで簡単に説明します:
9.45という数字は、見るとこのように見えますが、機械の中ではこれではなく、9.4499999999999999999....つまり:
9.449999*100 = 944.9999。それでわかりますよね? intval は仮数を直接削除します。これは Shenma Lai と呼ばれます。笑、名前は忘れました。この点では、intval は Floor() 関数とほぼ同じです。ふふ。これは今まで気づかなかったことです。間隔が切り捨てられることに気づきませんでした。 1.00 に対して 1.0099999 などというものは存在しないため、945*1.00 の浮動小数点数は 945 になります。その場合、当然のことながら、変換時に intval は 944 にはなりません。 次のような古典的な試験問題もいくつかあります: intval((0.1+0.7)*10) は 8 ではなく 7 に等しい。これはすべて真実です。大丈夫。単純に言ってください。少なくとも、インターネット上の理解できないものよりははるかに優れています。


http://www.bkjia.com/PHPjc/327772.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/327772.html

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