ホームページ > バックエンド開発 > PHPチュートリアル > 不正確な PHP 浮動小数点計算の比較と丸めの解決策

不正確な PHP 浮動小数点計算の比較と丸めの解決策

WBOY
リリース: 2016-06-13 12:23:26
オリジナル
1135 人が閲覧しました

PHP における不正確な浮動小数点計算の比較と丸めの解決策

PHP における興味深い現象は、多くのプログラミング言語でも見られるはずです。これは、コンピュータ自身の浮動小数点数の認識の問題によるものです。

[php] view plaincopy

  1. $f = 0.58;
  2. var_dump($f * 100 *100)); /結果 5799 var_dump((float)(
  3. $f * 100 *100))
  4. //結果 5800
  5. echo (int)((0.1 0.7)*10);
  6. //結果 7
  7. echo (float)((0.1 0.7) *10)
  8. //結果 8

[php]
plaincopy を表示

  • $a = 0.1;
  • $b = 0.7;
  • var_dump((
  • $a
  • $b) == 0.8); 出力される値は実際にはブール値 false
  • [php]
  • view plaincopy

    $a = 0.1;
    1. $b = 0.7;
    2. var_dump($a,
    3. $b,2) == 0.8);
    4. // bool true
    5. 浮動小数点数を計算するときは、浮動小数点数を整数に変換しないように注意してください。変換しないと、予測不可能なエラーが発生します。
    したがって、浮動小数点数の結果が最後の桁まで正確であるとは絶対に信じないでください。また、2 つの浮動小数点数が等しいかどうかを比較することも決してしないでください。

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