ホームページ  >  記事  >  バックエンド開発  >  PHP浮動小数点数のfloat演算をintに転送する問題

PHP浮動小数点数のfloat演算をintに転送する問題

coldplay.xixi
coldplay.xixiオリジナル
2020-07-13 10:50:092979ブラウズ

php 浮動小数点数 float 演算を整数に転送: PHP の浮動小数点数は弱い型です。演算後の結果が整数となる整数または浮動小数点数の場合、PHP はそれらを整数として扱うことができます。コードは [intval] です。 (round (floatval($value) * 100))]。

PHP浮動小数点数のfloat演算をintに転送する問題

php 浮動小数点数 float 演算を整数型 int に転送します:

このコードを実行します:

$f = 0.58;
var_dump(intval($f * 100.0));

もしかしたら、58 を出力すると思っているかもしれませんが、実際には 57 を出力します。
その理由は、浮動小数点データとして精度の一部が失われており、完全に正確であることはできないためです。したがって、浮動小数点数の結果が最後の桁まで正確であると決して信じないでください。また、2 つの浮動小数点数が等しいかどうかを比較しないでください。

php の浮動小数点数は型付けが弱いため、演算後の結果が整数となる整数または浮動小数点数の場合、php はそれらを整数として扱うことができますが、型は変更されません。ただし、演​​算後の値が整数でない場合、PHP は結果を厳密な浮動小数点数として扱います

実際の開発では、次のロジックを使用してこの状況を解決できます

intval(round(floatval($value) * 100));

関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで

#

以上がPHP浮動小数点数のfloat演算をintに転送する問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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