Десятичное число с запятой вместо точки (php и sql) - PullRequest
7 голосов
/ 05 января 2010

Я делаю небольшое приложение для добавления цен и десятичных дробей. Точки, как правило, используются с десятичными числами, но как я могу написать десятичное число с запятой в качестве ввода (543,35 вместо 543,35), а затем, возможно, изменить его с указанием на базу данных (mysql)? Затем распечатайте его обратно из базы данных с запятой. Причина в том, что запятая (,) больше используется в Финляндии, чем точка (.) При записи десятичных чисел.

Большое спасибо!

Samuel

Ответы [ 5 ]

10 голосов
/ 25 января 2010
$input  = '5,50';
$output = str_replace(',', '.', $input);
var_dump($output); // string(4) "5.50"
$number = (float)$output;
var_dump($number); // float(5.5)
6 голосов
/ 05 января 2010

вам не нужно ничего делать в конце sql. Вы хотите отформатировать десятичное значение в php (предполагается, что php4 / php5): установите третий параметр $ dec_point в ','

// string number_format ( float $number , int $decimals , string $dec_point , string $thousands_sep )
<?php

$number = 1234.56;

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Источник: http://php.net/manual/en/function.number-format.php

Ура!

1 голос
/ 25 января 2010

PHP number_format - это то, что вам нужно:

number_format(5.50, 2, ',');

... должен сделать трюк.

0 голосов
/ 05 января 2010

Нет, использование запятой в качестве десятичного разделителя для арифметических операций не поддерживается. Отфильтруйте входные данные и замените запятую точкой, а затем отформатируйте выходные данные.

0 голосов
/ 05 января 2010

Как уже было сказано, лучше сохранить значение в формате с плавающей запятой, а затем отформатировать для отображения. В качестве альтернативы ранее предложенному number_format (), вы можете попробовать money_format () http://us.php.net/manual/en/function.money-format.php Это не работает в среде Windows, хотя, если это важно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...