2013-04-05 4 views
0

В моей базе данных некоторые поля (сумма, баланс) присваиваются как плавающее значение, но теперь у меня проблема с этим. Если сумма равна 1,56, то потребуется 1,6 , после чего я изменяю таблицу, используя Раунд (сумма, 2) все еще показывает ту же проблему. если кто-нибудь знает, пожалуйста, помогите мне.Преобразование с плавающей запятой в базу данных

+1

Если вы работаете с валютой, лучше используйте десятичный тип данных. Вы можете изменить тип данных столбца на 'Decimal (18, 2)' –

ответ

2

Поля с плавающей точкой должны быть объявлены как float (some_integer, 1), чтобы показать описанное вами поведение. Первое целое число в таком объявлении говорит MySQL, сколько цифр должно быть видимым alltogether, оставшиеся до десятичной точки + те, которые прямо на него. Чтобы иметь 3 цифры слева и 2 справа от десятичной точки, вы объявите ее как float(5,2).

Как и Доан Куонг, уже упоминалось, что было бы лучше, если бы вы выбрали десятичный тип данных.

Посмотрите на его поведение live here.

Процитирует руководство:

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

Типы FLOAT и DOUBLE представляют собой приблизительные значения цифровых данных.

Для получения дополнительной информации о типах данных читать далее here.

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