Argument 1:3 AS DECIMAL(19, 8)
Argument 2:27 AS DECIMAL (18, 0)
-- Standardpräzision ist 18, Standardmaßstab ist 0 (BIGINT
wurde in DECIMAL
umgewandelt aufgrund von Typvorrang)
p1 = 19
p2 = 18
s1 = 8
s2 = 0
Lassen Sie uns zum Beispiel 1 berechnen:
precision: (19 - 8 + 0) + MAX(6, 8 + 18 + 1) = 38
scale: MAX(6, 8 + 18 + 1) = 27
Für alle Ihre Beispiele erhalten Sie immer maximal 27 Skalen.
0.111111111111111111111111111 (27)
11.111111111111111111111111111 (27)
0.005488934750153684025643277 (27)
Der ganze Teil benötigt nur die notwendigen Ziffern (1), (2), (1).
Für mich ist alles vollkommen gültig.
Diese Antwort basiert auf der Arbeit von @Paul White
aus Decimal Truncation In division
.