2013-08-13 3 views
3

У меня есть поле данных с плавающей точкой:MySQL поле поплавка данные не принимает каждый поплавок номер

`total` float(20,2) unsigned NOT NULL, 

Я хочу, чтобы вставить число с плавающей запятой, как: «815032.68», но это не принято, а число округляется до 815032.69. Зачем?

+2

Пожалуйста, размещайте больше кода (в частности, вставка 815032.68, в результате чего получается значение таблицы 815032.69) –

+0

Я использую phpmyadmin для ввода этого номера. – Murat

+0

Попробуйте вставить значение с помощью raw SQL, чтобы исключить какие-либо дефекты в phpmyadmin. –

ответ

1

Пользуйтесь тонкой фиксированной Тип точки данных,

`total` DECIMAL(20,2) unsigned NOT NULL 

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

MySQL Doc

с плавающей точкой типы данных могут хранить только approximate numbers.

+0

Спасибо @juergen d – Murat

1

Поплавки - это 32-битные числа, хранящиеся в качестве мантиссы и экспонентов, максимальное значение, которое может иметь FLOAT, равно + 8388608 * 10^127, а минимальное - -8388608 * 10^127. Это означает только 7 значащих цифр, и используется ваше определение FLOAT 20. Используйте двойной тип данных.

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