Преобразовать число в другое

Так что у меня есть эта маленькая проблема. У меня есть форма, где вы можете ввести число, оно может быть в европейском формате, с запятой в виде десятичной дроби (,), или американской с десятичной запятой (.).

Зная это, как я могу конвертировать числовой формат из европейско-американского формата? А американский формат оставить без изменений?

Я пытался использовать эту формулу, но результат неправильный.

$american = '12.5';
$european = '12,5';

$locale = 'it_IT.utf8';
setlocale ('LC_NUMERIC', $locale);
$fmt = new NumberFormatter ($locale, NumberFormatter::DECIMAL);
$american = $ fmt->parse($american);
$european = $ fmt->parse($europen);

response

$american = 125
$european = 12.5

В чем проблема?

php ver. 5.4.10

2 ответа

Попробуйте следующий код:

$american = '12.5';
$european = '12,5';

$locale = 'en_US.utf8';
$fmt = new NumberFormatter ($locale, NumberFormatter::DECIMAL);
$american = $fmt->parse($american);

$locale = 'it_IT.utf8';
$fmt = new NumberFormatter ($locale, NumberFormatter::DECIMAL);
$european = $fmt->parse($european);

Получить желаемый результат?

Не лучше ли вместо этого использовать str_replace()?

Другие вопросы по тегам