ホームページ >バックエンド開発 >PHPの問題 >PHPのfloatとdoubleの違いは何ですか

PHPのfloatとdoubleの違いは何ですか

WBOY
WBOYオリジナル
2022-02-17 15:50:092554ブラウズ

PHP では、float と double に違いはありません。浮動小数点型は、PHP では浮動小数点数 float、倍精度数 double、または実数 real とも呼ばれます。Float、double、real は同じデータ型であり、同じ構文を使用して定義できます。

PHPのfloatとdoubleの違いは何ですか

このチュートリアルの動作環境: Windows10 システム、PHP7.1 バージョン、DELL G3 コンピューター

float と double の違いは何ですか? in php

phpでfloatとdoubleの違いを区別するために、次のコードを使用してそれぞれを出力します。

$vad = 1.1;
print gettype($vad);
var_dump($vad);

これは出力します:

double
float(1.1)

見た目は異なりますが、実際にはphpでは違いはありません。 float、double、または real は同じデータ型です。 Float (float、double、real とも呼ばれます。C レベルでは、すべてが double として格納されます。

実際のサイズは依然としてプラットフォームに依存します。詳細については、マニュアルを参照してください:

http: //www.php.net/manual/en/ language.types.float.php

浮動小数点数の精度

浮動小数点数の精度には制限があります。システムでは、PHP は通常 IEEE 754 double 形式を使用しており、丸めによる最大相対誤差は 1.11e-16 です。非基本的な数学演算ではより大きな誤差が発生する可能性があり、複合演算を実行するときにエラーの伝播が考慮されます。

さらに、0.1 や 0.7 など、10 進数で正確に表現できる有理数は、仮数の数に関係なく、内部で使用されるバイナリでは正確に表現できないため、精度を少し損なうことなく変換することはできません。これは、混乱を招く結果を引き起こす可能性があります: たとえば、floor((0.1 0.7)*10) は、結果の内部表現が実際には 7.9999999999999991118….

# のようなものであるため、通常、期待される 8 ではなく 7 を返します。 ##したがって、浮動小数点数の結果が最後の桁まで正確であるとは絶対に信じないでください。また、2 つの浮動小数点数が等しいかどうかを決して比較しないでください。本当に高い精度が必要な場合は、任意精度の数学関数または gmp 関数を使用する必要があります。

推奨される学習: 「

PHP ビデオ チュートリアル

以上がPHPのfloatとdoubleの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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