Как интерпретировать точность и масштаб числа в базе данных?

У меня есть следующий столбец, указанный в базе данных: десятичный (5,2)

Как это интерпретировать?

В соответствии со свойствами столбца, рассмотренными в студии SQL Server Management, я вижу, что это означает: десятичное (числовая точность, числовая шкала).

Что означают точность и масштаб в реальном выражении?

Было бы легко интерпретировать это как десятичную цифру с 5 цифрами и двумя десятичными запятыми... т.е. 12345.12

P.S. Я смог определить правильный ответ от коллеги, но с большим трудом нашел ответ в Интернете. Таким образом, я хотел бы задать вопрос и ответ, описанный здесь, в stackoverflow для дальнейшего использования.

Ответ 1

Числовая точность относится к максимальному числу цифр, присутствующих в номере.

т.е. 1234567.89 имеет точность 9

Числовая шкала относится к максимальному числу десятичных знаков

т.е. 123456,789 имеет шкалу от 3

Таким образом, максимальное допустимое значение для десятичного (5,2) равно 999.99

Ответ 2

Точность числа - это количество цифр.

Масштабирование числа - это число цифр после десятичной точки.

Что обычно подразумевается при настройке точности и масштаба в определении поля, так это то, что они представляют значения максимум.

Пример: десятичное поле, определенное с помощью precision=5 и scale=2, позволит использовать следующие значения:

  • 123.45 (p = 5, s = 2)
  • 12.34 (p = 4, s = 2)
  • 12345 (p = 5, s = 0)
  • 123.4 (p = 4, s = 1)
  • 0 (p = 0, s = 0)

Следующие значения не допускаются или могут привести к потере данных:

  • 12.345 (p = 5, s = 3) = > можно усечь в 12.35 (p = 4, s = 2)
  • 1234.56 (p = 6, s = 2) = > можно усечь в 1234.6 (p = 5, s = 1)
  • 123.456 (p = 6, s = 3) = > можно усечь в 123.46 (p = 5, s = 2)
  • 123450 (p = 6, s = 0) = > вне диапазона

Обратите внимание, что диапазон обычно определяется точностью: |value| < 10^p...

Ответ 3

Точность, масштаб и длина в документации SQL Server 2000:

Точность - это число цифр в числе. Масштаб - это число цифр справа от десятичной точки в числе. Например, число 123.45 имеет точность 5 и шкалу 2.