Аргумент 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
.