2016-06-19 2 views
-1

У меня есть столбец foo в таблице mysql, который имеет тип DECIMAL (10,10).Странная ошибка «Усечение данных: вне диапазона» для десятичного столбца

Если я пытаюсь вставить запись в него со значением foo как 100.0, которая производит ошибку "усечение данных: Из значения диапазона для столбца„Foo“в строке 1`

Что я делаю wrong - не 10,10 означает до 10 цифр как до, так и после десятичной точки, что должно учитывать это число?

+0

десятичных 10,10 = 10 позиций макс с 10 присутствуют десятичные знаки. Попробуйте 10,2 вместо или 20,10. –

ответ

1

Нет, первое значение означает общее количество цифр, а второй означает цифру после запятой,

так,

20,10 = 20 Digits and 10 after comma => 10, before and ten after 

упакованных «точной» число с фиксированной точкой. M - общее количество цифр (точность), а D - количество цифр после десятичной точки (шкала). Десятичная точка и (для отрицательных чисел) знак «-» не учитываются в M. Если D равно 0, значения не имеют десятичной или дробной части, а на INSERT значение округляется до ближайшего DECIMAL. Максимальное количество цифр (M) для DECIMAL равно 65. Максимальное количество поддерживаемых десятичных знаков (D) равно 30. Если D опущено, значение по умолчанию равно 0. Если M опущено, значение по умолчанию равно 10.

0

If вы хотите 10 цифр и 10 десятичных знак вам нужны

DECIMAL (20,10) 

Первое значение определяет общее количество цифр .. Secondo максимальной цифры после десятичной точки

+0

Должен ли быть принят 10,10 еще 100,0? –

+0

Даже с 30,30 100.0 не принимается. Может быть, здесь что-то еще происходит –

+0

30,30, тогда 30,30 означает только 30 цифр после десятичной точки. Никакая целочисленная часть, 100,0 не означает десятичную часть..так вы пытаетесь 0.00000000 -> 30 не работают .. потому что у вас есть целочисленное значение (0.). Если вы попробуете 1111111-> 100.1, не работайте, у вас есть десятичная цифра .. – scaisEdge

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