PHPでは、ラウンド()関数は、フローティング小数を指定された精度に丸めるために使用される一般的な関数です。丸め数に適しているだけでなく、必要に応じて小数を保持する数字の数も制御します。これは非常に柔軟です。この記事では、ラウンド()関数の基本的な使用、一般的な手法、およびこの機能をより効率的に使用するのに役立ついくつかの注意事項を詳細に紹介します。
ラウンド()関数の基本的な構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-keyword">float</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$precision</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$mode</span></span><span> = PHP_ROUND_HALF_UP): </span><span><span class="hljs-keyword">float</span></span><span>
</span></span>
$ value :必須、保留中の浮動小数値。
$ precision :オプション、丸め後に保持される小数点以下の場所の数を指定します。デフォルト値は0で、整数が返されることを示します。
$モード:オプション、丸めモードを指定し、PHPには選択できる複数のモードがあります。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.14159</span></span><span>); </span><span><span class="hljs-comment">// 出力 3</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.5</span></span><span>); </span><span><span class="hljs-comment">// 出力 4</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
上記の例では、 $ precisionと$モードを指定せず、PHPはデフォルトでフローティングデシマルを整数に回します。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.14159</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// 出力 3.14</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.14159</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>); </span><span><span class="hljs-comment">// 出力 3.142</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
$ precisionパラメーターを設定することにより、保持する小数点以下の場所の数を指定できます。上記の例では、最初の結果は2つの小数点を保持し、2番目の結果は3つの小数点を保持します。
PHPのRound()関数は、4つの丸めモードを提供します。
php_round_half_up :丸め(デフォルト動作)。
php_round_half_down :ラウンド6。
PHP_ROUND_HALF_EVEN :バンカーの丸め方法、丸め方も使用します。
php_round_half_odd :奇数の丸め方式を使用します。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.5</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, PHP_ROUND_HALF_UP); </span><span><span class="hljs-comment">// 出力 4</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.5</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, PHP_ROUND_HALF_DOWN); </span><span><span class="hljs-comment">// 出力 3</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">2.5</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, PHP_ROUND_HALF_EVEN); </span><span><span class="hljs-comment">// 出力 2</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">3.5</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, PHP_ROUND_HALF_ODD); </span><span><span class="hljs-comment">// 出力 3</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
この例では、異なるパターンを使用して丸めの動作を制御する方法を示します。各モデルは、特に金融、会計などの分野で、さまざまなニーズに適しています。
フローティング数値を使用する場合、多くの場合、精度エラーの問題が発生し、 Round()関数はこの問題を効果的に解決できます。たとえば、計算すると浮動数が不正確になる可能性があり、その結果、満たされていない結果が得られます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-number">0.1</span></span><span> + </span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// 出力 0.3</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
コンピューターに0.1と0.2を追加すると、小数点後にわずかなエラーが発生しますが、ラウンド()関数は最終結果が正確であることを保証します。
ラウンド()関数は、特に数値の精度を制御する場合、さまざまなシナリオで広く使用されています。一般的なアプリケーションシナリオには以下が含まれます。
財務計算:たとえば、金額の計算には通常、2つの小数点以下を保持する必要があります。
科学的計算:精度エラーを回避するために、一定数の小数の場所を達成する必要があります。
データ表示:統計を表示する場合、データは通常、ディスプレイが簡潔で理解しやすいことを確認するために丸みを帯びています。
負の数の丸め: round()関数は、負の数を処理するときに丸めルールにも従います。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(-</span><span><span class="hljs-number">3.14159</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// 出力 -3.14</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(-</span><span><span class="hljs-number">3.5</span></span><span>); </span><span><span class="hljs-comment">// 出力 -4</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
境界値:丸められた数値が正確に境界値(たとえば0.5)にある場合、使用するパターンに基づいて切り上げるかダウンするかを決定します。
Round()関数は、PHPの非常に便利なツールであり、フローティング小数に対処するときに開発者が正確な制御を達成するのに役立ちます。精度と丸めモードを合理的に設定することにより、数値の計算と表示が要件を満たすことを確認することができます。実際の開発では、 round()関数の使用をマスターすると、コードの品質を大幅に向上させ、一般的な浮動エラーの問題を回避できます。