2013-12-09 2 views
1

Я использую форматировщик чисел PHP на локальном сервере, и хотя он работает, он печатает суммы в долларах США, такие как: 8.500,00 $, когда я действительно хочу, чтобы это выглядело так: $ 8,500.00 , Есть ли какой-то параметр внутри функции, который позволит мне исправить эту проблему или мне нужно использовать что-то еще?PHP NumberFormatter, инвертирующий запятые и десятичные знаки

+2

Пожалуйста, покажите нам некоторый код. – Dave

+1

Ваш язык не может быть настроен так, как вы думаете. Как вы создаете свой объект 'NumberFormatter'? –

+1

@RocketHazmat Вы были правы! Я забыл изменить локаль на США вместо прежней настройки (немецкий), спасибо за это. –

ответ

0

Похоже, у вас неправильный набор локалей в вашем NumberFormatter объекте. Формат $8,500.00 - формат США. Убедитесь, что вы указали NumberFormatter, чтобы использовать правильный язык.

-1

Если вы используете функцию number_format убедитесь, что вы используете десятичную и запятую в нужном месте в функции, как показано ниже:

number_format ($number , $decimals , '.' , ','); 

Если вы с помощью NumberFormatter класса, то я бы рекомендую делать:

$number = 8500.00; 
$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY); 
echo $fmt->format($number); 
//Results in $8,500.00 
-2

Существует функция называется number_format

number_format ($number , $decimals , $dec_separator , $thousands_separator) 
+0

Да, я забыл изменить локаль на функции, которую я использовал, если бы она была установлена ​​в Данию вместо США. –

0

Может быть что-то вроде этого:

$number = 1234.52; 
setlocale(LC_MONETARY, 'en_US'); 
$number = money_format('%#10.2n', $number); 

Update о, на самом деле вы сказали, что вы используете NumberFormatter. Я просто пропустил это. Это должно хорошо работать:

$formatter = new NumberFormatter('en_US', NumberFormatter::CURRENCY); 
$number = $formatter->format($number); 
Смежные вопросы