En effet, ces deux types de données produisent des erreurs de calculs.
Voici un petit test pour révéler cela :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | DECLARE @mon1 smallmoney, @mon2 smallmoney, @mon3 smallmoney, @mon4 smallmoney, @num1 decimal(19,4), @num2 decimal(19,4), @num3 decimal(19,4), @num4 decimal(19,4) SELECT @mon1 = 100 , @mon2 = 339 , @mon3 = 10000 --- , @num1 = 100 , @num2 = 339 , @num3 = 10000 SELECT @mon4 = @mon1 / @mon2 * @mon3 , @num4 = @num1 / @num2 * @num3 SELECT @mon4 AS money_result , @num4 AS numeric_result |
Attention donc au choix des types de données !