Trovato il problema, sull'update del SSIS moltiplicavo erroneamente (decimal * decimal * float)
Il fatto che la precisione di 2 numeri decimal moltiplicati è data da
P= p1 + p2 +1; S= s1 + s2
è indiscutibile
Nel mio caso, la moltiplicazione dei 2 decimal non supererà mai le 12 cifre decimali e la sensibilità dei decimali è fino all' 11 cifra
per questo motivo ho utilizzato dei campi DECIMAL(24,12).
DECLARE @A DECIMAL(24,12)
DECLARE @B DECIMAL(24,12)
DECLARE @C DECIMAL(24,12)
SET @A = 35,245644
SET @B = 565141,1423
SET @C = @A * @B / 100
PRINT(@C)
--199187.635112591412
in alternativa cosa potevo fare?
(ovvio che un operazione di questo tipo)
DECLARE @A DECIMAL(24,12)
DECLARE @B DECIMAL(24,12)
DECLARE @C DECIMAL(24,12)
DECLARE @D DECIMAL(24,12)
SET @A = 0.000000000001
SET @B = 1.000000000001
print(@A * @B)
non otterrò la giusta precisione
--0.000000000001000000000001
ma
--0.000000000001