71

数値をドルとセントを示す文字列に変換するにはどうすればよいですか?

eg:
123.45    => '$123.45'
123.456   => '$123.46'
123       => '$123.00'
.13       => '$0.13'
.1        => '$0.10'
0         => '$0.00'
4

7 に答える 7

86

シンプルなものが必要な場合:

'$' . number_format($money, 2);

number_format()

于 2008-11-17T04:18:44.417 に答える
84

PHP にはmoney_format()もあります。

次に例を示します。

echo money_format('$%i', 3.4); // echos '$3.40'

この関数には実際にはたくさんのオプションがあります。リンク先のドキュメントにアクセスしてそれらを確認してください。

注: money_format は Windows では定義されていません。


更新: PHP マニュアル経由: https://www.php.net/manual/en/function.money-format.php

警告: この関数 [ money_format ] は、PHP 7.4.0 で非推奨になりました。この関数に依存することはお勧めできません。

代わりに、NumberFormatter::formatCurrencyを調べてください。

    $number = "123.45";
    $formatter = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
    return $formatter->formatCurrency($number, 'USD');
于 2008-11-17T04:13:28.860 に答える
16

試し money_format()てみましたが、まったくうまくいきませんでした。それから私は次のものを試しました。それは私にとって完璧に機能しました。うまくいけば、それはあなたにとっても正しい方法で機能します.. :)

あなたはこれを使うべきです

number_format($money, 2,'.', ',')

小数点以下 2 桁までの通貨形式で表示されます。

于 2014-02-03T13:07:41.727 に答える
8

PHPおよびC++では、printf()関数を使用できます

printf("$%01.2f", $money);
于 2008-11-17T04:10:27.180 に答える
4

PHP 7.4 では、money_format() 関数は非推奨であることに注意してください。intl NumberFormatter 機能に置き換えることができます。php-intl 拡張機能を有効にしてください。これはわずかな労力であり、多くのカスタマイズ機能を利用できるため、それだけの価値があります。

$f = new NumberFormatter("en", NumberFormatter::CURRENCY);
$f->formatCurrency(12345, "USD"); // Outputs "$12,345.00"

Darryl Heinが述べたように、7.4 でも機能する高速な方法は次のとおりです。

'$' . number_format($money, 2);
于 2020-02-22T01:12:37.023 に答える