regex — PHP Формат USD Валюта — Отрицательные числа

Мне нужно отобразить сумму денег с символом минус перед $ подписать, если это отрицательное число.

Например.:

$sum="-120";
echo "$".$sum;

Выход будет:

$-120

Я хочу, чтобы вывод был:

-$120

Я мог бы сделать это с регулярное выражение/str_replace/ etc, но мне интересно, есть ли встроенная функция PHP для этого. Может быть, какой-то вариант в money_format или что-то подобное.

Благодарю.

0

Решение

money_format() будет делать это, но вам нужно использовать setlocale() Сначала убедитесь, что символ валюты установлен правильно:

setlocale(LC_MONETARY, 'en_US');
echo money_format('%+n', -123.45); // -$123.45

Рекомендации:

5

Другие решения

если intl установлен в вашем php config, вы можете сделать это тоже:

$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->formatCurrency($sum, "USD");
0

По вопросам рекламы [email protected]