Подтвердить что ты не робот

Разница между float (2,2) и float() в mysql

Я создал таблицу в MySQL со столбцом типа float (2,2) и вставил в нее значение 10, но обнаружил, что сохраненное значение равно 0,99.

В чем причина этого? Если в MySQL мы используем столбец типа float (m, n), где "m" и "n" - целые числа, то на что следует обращать внимание при хранении значений в этом столбце?

4b9b3361

Ответ 1

float(2,2) означает "использовать две цифры, из которых два используются после десятичной точки".

Следовательно, вы можете перейти от -0,99 до 0,99. Вы не можете вставить 10 в этот столбец, вам нужно по крайней мере две цифры перед запятой (так что float (4,2) или float (2,0)).

MySQL допускает нестандартный синтаксис: FLOAT (M, D) или REAL (M, D) или DOUBLE Прецизионные (M, D). Здесь "(M, D)" означает, что значения могут быть сохранены вверх до M цифр, из которых D цифр могут быть после десятичной точка. Например, столбец, определенный как FLOAT (7,4), будет выглядеть так: -999.9999 при отображении. MySQL выполняет округление при хранении значений, поэтому, если вы вставляете 999.00009 в столбец FLOAT (7,4), приблизительный результат - 999,0001.

Ответ 2

MySQL допускает нестандартный синтаксис: FLOAT (M, D) или REAL (M, D) или DOUBLE PRECISION (M, D). Здесь "(M, D)" означает, что значения могут быть сохранены с точностью до M цифр в сумме, из которых <десятичные разряды > могут быть после десятичной точки.

Ответ 3

float (M, D), имея в виду здесь M = max. нет. (диапазон от 1 до 65), D = нет. цифр после десятичной точки. так что cany вы меняете его float (5,2). поэтому float (2,2) не удовлетворяет вашей потребности ввести no.10

Ответ 4

В MySql есть тип данных, такой как FLOAT (M, D). Где D - это количество десятичных знаков, а M - общее количество цифр (включая десятичные). Десятичная точность может доходить до 24 разрядов для FLOAT, а диапазон M от 1 до 65. Если синтаксис FLOAT (2,2), то здесь есть только два десятичных знака и нет места для вещественного числа. Так что вы хотите добавить 10, вы можете использовать как FLOAT (5,2).