HOWTO · PHP
PHP で数値をドルの金額にフォーマットする
数値フォーマット、フォーマット通貨、または正規表現を使用するなど、さまざまな方法で PHP で数値をドル金額にフォーマットできます。
このページの内容
このチュートリアル記事では、例を使用して、PHP で数値をドルにフォーマットするさまざまな方法について説明します。これらには以下が含まれます:
number_formatNumberFormatter::formatCurrencyRegular expressionsManual format
また、money_format 関数が使用されなくなった理由についても説明します。
PHP で number_format 関数を使用して数字をドルに変換する
number_format 関数を使用して、小数点以下の桁数と通貨タイプを追加しながら、グループ化された千の値を配置します。
この関数には 4つのパラメーターがあります。
number_format(NUMBER, DECIMAL DIGITS, THOUSANDS SEPARATOR, DECIMAL SEPARATOR)
- 数値はフォーマットする値です。
- 小数点以下の桁数は、小数点以下の桁数を指定します。
- 小数点記号は、小数点に使用する文字列を識別します。
- 千の区切り文字は、千の区切り文字として使用される文字列を示します。
1000 区切り文字パラメーターが使用されている場合、コードが機能するには、他の 3つがそれに付随している必要があることに注意してください。
コード例:
<?php
// NUMBER
$amount = 123.45;
// TO USD - $123.45
$usd = "$" . number_format($amount, 2, ".");
echo $usd;
?>
出力:
$123.45
PHP で NumberFormatter::formatCurrency 関数を使用して数値をドルの金額にフォーマットする
これは、異なる通貨を示す文字列に数値をフォーマットするための最新の、そして間違いなく最も簡単な方法です。
php.ini で extension=intl が有効になっていることを確認します。
覚えておくべき 3つのパラメータがあります。
NumberFormatterオブジェクトである Formatter。- 金額。通貨の数値です。
- ISO 4217 は、使用する通貨を規定しています。
コード例:
<?php
// NUMBER
$amount = 123;
// TO USD - $123.00
$fmt = new NumberFormatter("en_US", NumberFormatter::CURRENCY);
$usd = $fmt->formatCurrency($amount, "USD");
echo $usd;
?>
出力:
$123.00
例 2:
<?php
// NUMBER
$amount = 123.456;
// TO USD - $123.46
$fmt = new NumberFormatter("en_US", NumberFormatter::CURRENCY);
$usd = $fmt->formatCurrency($amount, "USD");
echo $usd;
?>
出力:
$123.46
PHP で正規表現を使用して数値をドルの金額にフォーマットする
この方法は、ワームの缶全体です。その詳細に入ると、混乱するだけです。
この方法では、選択した通貨記号を追加しながら、数値を数千に配置します。
例を見てみましょう:
<?php
// NUMBER
$amount = 0.13;
// REGULAR EXPRESSION
$regex = "/\B(?=(\d{3})+(?!\d))/i";
$usd = "$" . preg_replace($regex, ",", $amount);
echo $usd;
?>
出力:
$0.13
PHP で数値をドルの金額に手動でフォーマットする
この方法は、残忍な力で錠を選ぶのと同じです。この方法では、任意の形式を使用できるという利点があります。
例を見てみましょう:
<?php
// FOR A DOLLAR CURRENCY
function curformat ($amount) {
// SPLIT WHOLE & DECIMALS
$amount = explode(".", $amount);
$whole = $amount[0];
$decimal = isset($amount[1]) ? $amount[1] : "00" ;
// ADD THOUSAND SEPARATORS
if (strlen($whole) > 3) {
$temp = ""; $j = 0;
for ($i=strlen($whole)-1; $i>=0; $i--) {
$temp = $whole[$i] . $temp;
$j++;
if ($j%3==0 && $i!=0) { $temp = "," . $temp; }
}
$whole = $temp;
}
// RESULT
return "\$$whole.$decimal";
}
// UNIT TEST
echo curformat(100); // $100.00
出力:
$100.00
上記のメソッドは、数値をドルとセントを示す文字列にフォーマットする必要があります。
money_format と呼ばれる別のメソッドがありますが、Windows では機能しません。この機能は廃止されたため、使用しないことを強くお勧めします。