検索
ホームページバックエンド開発PHPの問題PHPでの浮動小数点数の使用法は何ですか

PHPでの浮動小数点数の使用法は何ですか

Dec 01, 2021 am 09:20 AM
php浮動小数点数

php 浮動小数点数は Float 浮動小数点型を指し、「$a = 1.234;$b = 1.2e3;$c = 7E-10;$d = 1_234」のような構文で定義できます。 567;「できます。

PHPでの浮動小数点数の使用法は何ですか

この記事の動作環境:Windows7システム、PHP7.4バージョン、DELL G3コンピュータ

使用方法とはPHP 浮動小数点数?

php Float 浮動小数点型

浮動小数点型 (浮動小数点数 float、倍精度数 double、または実数 real とも呼ばれます) ) は、次の構文のいずれかを使用して定義できます ; 10 進数の精度 (64 ビット IEEE 形式)。

#警告

浮動小数点数の精度

浮動小数点数の精度には限界があります。システムにもよりますが、PHP は通常 IEEE 754 double 形式を使用するため、丸めによる最大相対誤差は 1.11e-16 です。非基本的な数学演算ではより大きな誤差が生じる可能性があるため、複合演算を実行する場合は誤差の伝播を考慮する必要があります。

また、0.1 や 0.7 など、10 進数で正確に表現できる有理数は、仮数部の数に関係なく、内部で使用される 2 進数では正確に表現できないため、2 進数に変換できません。精度を少しも損なうことなくフォーマットします。これは、混乱を招く結果につながる可能性があります。たとえば、floor((0.1 0.7)*10) は、結果の内部表現が 7.9999999999999991118... のようなものであるため、通常、期待される 8 ではなく 7 を返します。

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

浮動小数点数に変換

文字列から

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
$d = 1_234.567; // 从 PHP 7.4.0 开始支持
?>
他の型から

他の型の値の場合は、この状況は、値を最初に int に変換してから float に変換する場合と似ています。詳細については、「整数への変換」セクションを参照してください。

LNUM          [0-9]+(_[0-9]+)*
DNUM          ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})

浮動小数点数の比較

上記の警告メッセージにあるように、内部式の理由により、2 つの浮動小数点数が等しいかどうかを比較する際に問題があります。ただし、浮動小数点値を比較する回りくどい方法があります。

浮動小数点数が等しいかどうかをテストするには、その値よりほんの少しだけ大きい最小誤差値を使用します。この値は、マシン イプシロンまたは最小単位整数とも呼ばれ、計算で受け入れられる最小の差の値です。

$a と $b は小数点以下 5 桁の精度に相当します。

If the string is numeric or leading numeric then it will resolve to the corresponding float value, otherwise it is converted to zero (0).

NaN

特定の数学演算では、定数 NAN で表される結果が生成されます。この結果は、未定義または浮動小数点演算で表現できない値を表します。この値と他の値 (true を除く) を緩やかまたは厳密に比較すると、結果は false になります。

NAN は異なる値を表すため、NAN はそれ自体を含む他の値と比較されるべきではなく、is_nan() を使用してチェックされる必要があります。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPでの浮動小数点数の使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境