2013-06-19 3 views
0

Из моей базы данных я получаю десятичное значение, например, 25.30.умножить десятичные числа на PHP

В PHP я умножаю десятичное значение следующим образом: 25.30 * 6. Результат равен 151,8, но с запятой.

Проблема заключается в том, что результат получает мне запятую вместо точки, такой как 151.8.

Есть ли решение решить эту проблему и получить результат с помощью точки?

+0

'$ string = 25.30 * 6; $ string = str_replace (',', '.', $ String); print $ string; ' – Albzi

+0

Если вы получаете запятую, то ваши региональные настройки должны быть установлены на европейский стандарт – DevZer0

+1

Вы уверены? Это то, что я получаю http://codepad.org/ecqRO2J9 Покажите свой код. –

ответ

2

Вы хотите отформатировать свой номер. Из manual:

string number_format (float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',') 

Так, например, в вашем случае это будет:

print number_format($number, 1, '.', ','); 
2

попробовать var_dump(localeconv());, вы, вероятно, увидите ключ decimal_point является , так либо (если PHP5.3> =) пытаются locale_set_default('en_US'); или использовать (устаревшее) setlocale функцию: setlocale:

setlocale(LC_NUMERIC, 'en_US'); 
//or custom: 
$locale = localeconv(); 
$locale['decimal_point'] = '.'; 
$setlocale(LC_ALL, $locale); 

Подробная информация о Locale Класс here
С другой стороны appareach using setlocale и getting localeconv.

Hacky быстро исправить также может быть:

$formatted = sprintf('%.1f',25.30 * 6); 

Но я бы рекомендовал вам настройки локали, как они должны быть установлены. Также обратите внимание, что на окнах, setlocale(LC_ALL) использует системные настройки локали, как указано в документации:

В Windows, Setlocale (LC_ALL, «») устанавливает имена локалей с настройками региональных/языка системы (доступны через Control Панель).

Смежные вопросы