PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPで金額をfloat型に変換してround()で正しく丸める方法

PHPで金額などの数値を丸めたい場合は、round()関数を使用します。さらに、計算精度を確保するためにfloat型へ明示的にキャストすると安全です。

入力値の例

ここでは、次のような値を扱います。

$amount = 50.78;
$quantity = 45.5;

float型への変換と丸め処理

round()で小数第4位まで丸めたうえで、(float)キャストによりfloat型へ変換します。

$am = (float) round($amount, 4);
$quant = (float) round($quantity, 4);

サンプルコード

実際のPHPコードは以下の通りです。

<!DOCTYPE html>
<html>
<body>
<?php
$amount = 50.78;
$quantity = 45.5;

// float型に変換しながら丸める
$am = (float) round($amount, 4);
echo $am, "<br>";

$quant = (float) round($quantity, 4);
echo $quant, "<br>";

// 掛け算の結果も同様に丸める
$correctAmount = round($am * $quant, 4);
echo "計算結果=", $correctAmount;
?>
</body>
</html>

実行結果

上記のコードを実行すると、次の出力が得られます。

50.78
45.5
計算結果=2310.49

ポイント解説

  • round(値, 桁数):指定した桁数で四捨五入を行います。第2引数を省略すると整数に丸められます。
  • (float)キャスト:明示的にfloat型へ変換することで、後続の数値演算での型の不整合を防げます。
  • 金額計算の注意点:floatは浮動小数点数のため誤差が生じる可能性があります。厳密な金額計算が必要な場合は、bcmath拡張(bcaddやbcmulなど)やnumber_format()の活用も検討しましょう。
  1. Windows 10/11でレガシーBIOSからUEFIへ変換する方法【MBR2GPT完全ガイド】

    古いバージョンのWindowsでは、レガシーBIOS(MBR)からUEFI(GPT)へ変換するには、OS全体を再インストールするしかありませんでした。しかし、Windows 10には「MBR2GPT」というシンプルなツールが標準搭載され、わずか2つのコマンドでレガシーBIOSからUEFIへの変換が可能になりました。この記事では、Windows 10でレガシーBIOSをUEFIに変換する具体的な手順を解説します。なお、Windows 11ユーザーの場合は何もする必要がありません。デフォルトでUEFIモードが有効になっているためです。レガシーBIOSをUEFIに変換する理由とは?レガシーBIOSか

  2. Pythonでfloat型を整数に変換する方法:int()関数の使い方

    Pythonでfloatを整数に変換する基本の方法 Pythonには、float(浮動小数点数)オブジェクトを整数に変換するための組み込み関数 int() が用意されています。この関数にfloat型の値を渡すだけで、シンプルかつ手軽に整数へと変換できます。 >>> a = 10.56 >>> int(a) 10 int()関数の挙動:小数部分は「切り捨て」られる int() 関数は、小数部分を単純に切り捨てて整数を返します。四捨五入ではない点に注意しましょう。負の値の場合も、ゼロ方向へ丸められます。 >>> int(10.99) 10 &