Para la multiplicación simplemente sumar el número de decimales en cada argumento juntos (usando lápiz y papel) para elaborar salida lugares dec.
Pero la división solo hace volar la cabeza. Me voy a acostar ahora.
En términos de SQL sin embargo, es exactly as expected.
--Precision = p1 - s1 + s2 + max(6, s1 + p2 + 1)
--Scale = max(6, s1 + p2 + 1)
--Scale = 15 + 38 + 1 = 54
--Precision = 30 - 15 + 9 + 54 = 72
--Max P = 38, P & S are linked, so (72,54) -> (38,20)
--So, we have 38,20 output (but we don use 20 d.p. for this sum) = 11.74438969709659
SELECT CONVERT(DECIMAL(30,15),146804871.212533)/CONVERT(DECIMAL (38,9),12499999.9999)
--Scale = 15 + 38 + 1 = 54
--Precision = 30 - 15 + 15 + 54 = 84
--Max P = 38, P & S are linked, so (84,54) -> (38,8)
--So, we have 38,8 output = 11.74438969
SELECT CONVERT(DECIMAL(30,15),146804871.212533)/CONVERT(DECIMAL (38,15),12499999.9999)
Usted puede hacer lo mismo matemáticas si seguir this rule también, si usted trata a cada par de números como
- 146804871,212533000000000 y 12499999,999900000
- 146804871,212533000000000 y 12499999.999900000000000
BTW la calculadora de Windows da 11.744389697096595117576772760941 – inspite