Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как се дефинира мащабът, когато десетичният и големият дял са разделени?

Аргумент 1:3 AS DECIMAL(19, 8)

Аргумент 2:27 AS DECIMAL (18, 0) -- точността по подразбиране е 18, мащабът по подразбиране е 0 (BIGINT беше преобразувано в DECIMAL поради приоритет на типа)

p1 = 19
p2 = 18
s1 = 8
s2 = 0

Нека изчислим пример 1:

precision: (19 - 8 + 0) + MAX(6, 8 + 18 + 1) = 38
scale:     MAX(6, 8 + 18 + 1) = 27

За всички ваши примери винаги ще получавате максимум 27 мащаба.

 0.111111111111111111111111111 (27)
11.111111111111111111111111111 (27)
 0.005488934750153684025643277 (27)

Цялата част включва само необходимите цифри (1), (2), (1).

За мен всичко е напълно валидно.

Този отговор се основава на работата на @Paul White от Decimal Truncation In division .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Достъпът е отказан при вмъкване на файл в Sql Server 2012 FileTable с помощта на File.CreateFile в уебсайта на ASP.NET

  2. Този прост код създава безизходица. Включена проста примерна програма

  3. Съставен първичен ключ в променлива тип таблица

  4. Съхранявайте и извличайте .ZIP файл в SQL SERVER 2005

  5. EF:Как да извикам SaveChanges два пъти в транзакция?