Как мне отформатировать число в долларах в PHP - PullRequest
52 голосов
/ 17 ноября 2008

Как преобразовать число в строку с указанием долларов и центов?

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

Ответы [ 5 ]

70 голосов
/ 17 ноября 2008

PHP также имеет money_format () .

Вот пример:

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

Эта функция на самом деле имеет массу опций, чтобы посмотреть их, обратитесь к документации, с которой я связан.

Примечание: money_format не определен в Windows.

69 голосов
/ 17 ноября 2008

Если вы просто хотите что-то простое:

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

number_format ()

11 голосов
/ 03 февраля 2014

Я пытался money_format(), но у меня это не сработало. тогда я попробовал следующее. это сработало идеально для меня. надеюсь, это будет работать правильно и для вас ..:)

Вы должны использовать это

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

будет отображаться денежное число в денежном формате до 2 десятичных знаков.

6 голосов
/ 17 ноября 2008

В PHP и C ++ вы можете использовать функцию printf ()

printf("$%01.2f", $money);
0 голосов
/ 06 ноября 2018

Добавьте в php.ini это (если оно отсутствует):

#windows
extension=php_intl.dll

#linux
extension=php_intl.so

Тогда сделайте это:

$amount = 123.456;

// for Canadian Dollars
$currency = 'CAD';

// for Canadian English
$locale = 'en_CA';

$fmt = new \NumberFormatter( $locale, \NumberFormatter::CURRENCY );
echo $fmt->formatCurrency($amount, $currency);
...