ホームページ > バックエンド開発 > PHPチュートリアル > PHP が科学表記法で小さな小数を表示するのはなぜですか?また、それを防ぐにはどうすればよいですか?

PHP が科学表記法で小さな小数を表示するのはなぜですか?また、それを防ぐにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-10 18:54:10
オリジナル
976 人が閲覧しました

Why Does PHP Display Small Decimal Numbers in Scientific Notation, and How Can I Prevent It?

PHP の科学表記法の難問

PHP では、10 進数を処理するときに予期しない動作が発生する場合があります。以下のコード スニペットに示されているように、小数点を含む数値を指定しても、その数値が目的の形式で出力されるとは限りません。

<?PHP
  $var = .000021;
  echo $var;
?>
ログイン後にコピー

驚くべきことに、このコードの出力は「2.1E-」です。予想される「.000021」ではなく「5」です。この科学的表記法は、正確な数値を扱う場合には望ましくないことがよくあります。

科学的表記法の背後にある理由

PHP は内部的に浮動小数点演算を使用して数値を表します。数値の末尾にゼロが多数ある場合、精度を維持し、不正確な丸めを避けるために、PHP はデフォルトで科学的表記法を使用します。この場合、「.000021」の末尾に 0 が 5 つあるため、科学的表記法が使用されます。

科学的表記法を克服する

科学的表記法を防ぐには、次のようにします。 number_format() 関数:

print number_format($var, 5);
ログイン後にコピー

ここで、「5」引数は、次の数を指定します。小数点以下の桁数を保持します。この関数は期待どおりに「.000021」を出力します。

さらに、sprintf() を使用して出力形式を制御することも検討できます。

printf("%.5f", $var);
ログイン後にコピー

このアプローチでは、数値が確実に出力されます。小数点以下 5 桁

以上がPHP が科学表記法で小さな小数を表示するのはなぜですか?また、それを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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