2014-11-29 8 views
-1

У меня проблема с введением десятичных чисел. Код - это «система зарабатывания», которая рассчитывает заработную плату. Запрос вставляет 2 вместо 2.50.Невозможно вставить числа с десятичной точностью

Мой код выглядит следующим образом:

$quantity = "1"; 
$earned = $quantity * '2.5'; //type = double 
//.. query update to table etc.. 

Mysql:

`earned` decimal(10,2) NOT NULL DEFAULT '0.00' 

Я пытался подпевать $ заработал, и он говорит, что 2,5 вместо 2,5 это будет проблема ??

Решение: я снял Setlocale

+0

Если вы эхо '$ earned', а вместо' 2.5' вместо '2.5 'то вы делаете что-то еще, кроме того, что эхом отзываете его –

+0

@MarkBaker У меня нет ничего, чтобы заменить точку запятой в моем коде. –

+0

BTW, '2.5' - строка – Strawberry

ответ

1

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

$quantity = 1; 
$earned = $quantity * 2.5; 
+0

Это не помогло, оно по-прежнему вставляет 2 –

+0

, пожалуйста, проверьте, имеет ли столбец «заработал» правильный тип DECIMAL (15,2) @MichaelWestergaard никакой другой возможности потери данных – Sarath

0

Это длинный выстрел, так как вы не отправляли фактические mysql, но, скорее всего, значение 2.5 преобразуется в 2,5 по вашим настройкам локали.
Самое простое решение - процитировать все значения, которые вы вкладываете в свой запрос, поэтому у вас не будет побочных эффектов.

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