PHP NumberFormatter setPattern Валюта знак

Я установил локаль в en для моего числового формата. Форматирование валюты как USD результаты в $x.xx тогда как форматирование валюты как CAD результаты в CA$x.xx, Я попытался установить шаблон как ¤#,##0.00 а также ¤¤#,##0.00 но первый не всегда добавляет буквы перед символом валюты, а второй не делает, как я надеялся. Может кто-нибудь подсказать, как получить оба US$x.xx а также CA$x.xx при форматировании валют?

1

Решение

Вы можете сделать что-то вроде

if(objNumberFormatter->getTextAttribute(NumberFormatter::CURRENCY_CODE) == 'USD')
$objNumberFormatter->setAttribute(NumberFormatter::PAD_BEFORE_PREFIX, 'US');

ИЛИ ЖЕ

if($currency == 'USD')
$objNumberFormatter->setAttribute(NumberFormatter::PAD_BEFORE_PREFIX, 'US');

Или вы можете изменить его шаблон

if($currency == 'USD')
$objNumberFormatter->setPattern('US ¤#,##0.00');
0

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

Других решений пока нет …

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