Ответы:
DECIMAL(18,0)
позволит 0 цифр после запятой.
DECIMAL(18,4)
Вместо этого используйте что-то вроде этого, и все будет хорошо!
Это дает вам в общей сложности 18 цифр , 4 из которых после десятичной точки (и 14 до десятичной точки).
decimal(4,2)
разрешает 2 цифры до и 2 цифры после десятичной точки. «4.5» может быть сохранен без проблем - и численно «4.5» и «4.50» идентичны
varchar
для хранения десятичного значения !!
Вы должны использовать это следующим образом:
DECIMAL(m,a)
m
это количество цифр, которое может иметь ваша десятичная дробь.
a
максимальное количество цифр после десятичной точки.
В http://www.tsqltutorials.com/datatypes.php есть описания всех типов данных.
Настройки Decimal
- это точность и масштаб или на обычном языке, сколько цифр может иметь число и сколько цифр вы хотите иметь справа от десятичной точки.
Так что, если вы положите PI
в Decimal(18,0)
это будет записано как 3
?
Если вы положите PI
в Decimal(18,2)
это будет записано как 3.14
?
Если вы положили PI
в Decimal(18,10)
записаться как 3.1415926535
.
Большую часть времени я использую десятичную (9,2), которая занимает наименьшее количество памяти (5 байт) в sql десятичном типе.
Точность => Байты памяти
Он может хранить от 0 до 9 999 999,99 (7 цифр перед + 2 цифры после десятичной точки = всего 9 цифр), что достаточно для большинства значений.
В БД MySQL decimal(4,2)
разрешено вводить всего 4 цифры. Как вы видите decimal(4,2)
, это означает, что вы можете ввести всего 4 цифры, из которых две цифры предназначены для хранения после десятичной точки.
Таким образом, если вы введете 100.0 в базу данных MySQL, появится сообщение об ошибке типа «Out of Range Value for column».
Таким образом, вы можете войти только в этот диапазон: с 00.00 до 99.99.
Другие ответы верны. Предполагая, что ваши примеры отражают весь спектр возможностей, что вы хотите DECIMAL(3, 1)
. Или DECIMAL(14, 1)
разрешит всего 14 цифр. Твоя работа - думать о том, чего достаточно.