現在の位置: ホーム> 最新記事一覧> ceil()とround()の違いとそのアプリケーションシナリオ

ceil()とround()の違いとそのアプリケーションシナリオ

M66 2025-06-05

PHPでは、浮動小数点数を処理するときに「丸みを帯びている」必要があるシナリオに遭遇することがよくあります。現時点では、 CEIL()round()が2つの最も一般的な関数です。それらはすべて、整数変換に対する浮動小数点数を伴いますが、それらの動作は該当するシナリオとは大きく異なります。この記事では、これら2つの機能の違いを深く紹介し、適切な使用シナリオを分析します。

1。CEIL()関数:まとめ

ceil()は、英語の天井(天井)の略語です。名前が示すように、その機能は数値を上方に丸めることです。部分的な部分に関係なく、整数でない限り、 ceil()はそれを追加し、最も近い大きな整数を返します。

使用例:

<code> echo ceil(4.2); //出力5エコーセイル(-4.2); //出力-4 </code>

ご覧のとおり、 ceil()は正の数値で「1つ追加」していますが、負の数の場合、「ゼロ」の方向に丸められます。つまり、「小さくなります」です。

アプリケーションシナリオ:

  1. ページングロジックのページの総数を計算<br> レコードの総数とページごとに表示されるピースの数を知っている場合、通常、 ceil()を使用してページの総数を計算する必要があります。

    <code> $ total_items = 105; $ items_per_page = 10; $ total_pages = ceil($ total_items / $ items_per_page); //結果は11 </code>です
  2. 損失を回避するために価格が切り上げられます<br> たとえば、電子商取引ウェブサイトに最低支払い額を設定する場合、割引価格を切り上げる必要がある場合があります。

    <code> $ distimented_price = 19.2; $ final_price = ceil($ discounded_price); //結果は20 </code>です

2。ラウンド()関数:丸め

round()は、数値を丸める関数であり、数値をより「人間」にすることができます。デフォルトでは、小数点を丸めます。または、2番目のパラメーターを介して小数点以下の場所の数を指定できます。

使用例:

<code>エコーラウンド(4.2); //出力4エコーラウンド(4.5); //出力5エコーラウンド(-4.5); //出力-4 </code>

PHPのRound()が「銀行丸め方」を使用していることは注目に値します。 .5の終わりに小数を処理する場合、前の数字が偶数であるかどうかに応じて放棄するか、持ち運ぶかを決定します。

<code>エコーラウンド(2.5); //出力2エコーラウンド(3.5); //出力4 </code>

これにより、多数の数字が蓄積するとエラーが回避されます。

アプリケーションシナリオ:

  1. ユーザーフレンドリーな値を表示<br> たとえば、製品の評価を表示する場合:

    <code> $ verage_rating = 4.666;エコーラウンド($ agread_rating、1); //出力4.7 </code>
  2. 金融および会計システムの数値バランス<br> 銀行家の丸め方法は、累積エラーを減らすことができるため、財務統計でよく使用されます。

    <Code> $ Price = 2.5; $ rounded = round($ rice); //結果は2 </code>です
  3. チャートデータ処理<br> チャートでは、適切な丸めがデータをより直感的で理解しやすくすることができます。

    <Code> $パーセンテージ=(45 /123) * 100;エコーラウンド($パーセンテージ、2); //出力36.59 </code>

3.違いを要約し、提案を選択します

関数行動シナリオを使用します
ceil()上に丸くしますページングロジック、値が元の値よりも小さいことを保証します
ラウンド()丸め(偶数の方法)人間化されたディスプレイ、財務計算、チャート精度制御

ceil()またはround()を使用することを選択する場合、キーは、結果が元の値ceil()を使用して)以上であることを確認するか、結果を元の値の「平均」表現( round()を使用して)に近づけるかどうかです。

たとえば、在庫ページングディスプレイでこのようなページング機能を使用して、eコマースバックエンド管理システムを開発しています。

<code>関数getTotalPages($ total_items、$ items_per_page){return ceil($ total_items / $ items_per_page); } </code>

そして、ユーザーの満足度評価システムを扱っている場合、これを行うことができます。

<code> function formatrating($ rating){return Round($ rating、1); } </code>