Ответы:
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 цифр. Твоя работа - думать о том, чего достаточно.