J'ai divisé 500/15 puis multiplié le résultat par 15 mais j'ai des résultats différents sur les différentes Précision et Échelle.DECIMAL (Précision, Echelle) pour obtenir une précision maximale dans les calculs
Veuillez exécuter le script suivant.
DECLARE @cost DECIMAL(36,4)
SET @cost = 500
SELECT @cost/15, (@cost/15) * 15
-- Scale is 4 so on multlyping, after dividing, result is not 500
-- Result = 33.333333, 499.999995
DECLARE @cost2 DECIMAL(36,5)
SET @cost2 = 500
SELECT @cost2/15, (@cost2/15) * 15
-- Scale is 5 so on multlyping, after dividing, result is 500
-- Result = 33.3333333, 500.000000
DECLARE @cost3 DECIMAL(32,5)
SET @cost3 = 500
SELECT @cost3/15, (@cost3/15) * 15
-- Precision decrease to 32 from 36 result is again not 500
-- Result = 33.33333333, 499.99999995
J'ai besoin de stocker ce calcul dans db et je besoin de précision maximale. Ce n'est pas une application scientifique, mais le client doit l'avoir. Ce que je veux savoir, j'ai besoin de la précision qui me donne Decimal (36, 5). Dois-je utiliser cela parce qu'il a besoin de 17 octets? Quelle devrait être la meilleure approche pour obtenir la précision que j'ai expliqué dans les exemples?
Quelle est la nature des données, par ex. de quel domaine est votre valeur '15'? Qu'est-ce que le «coût», spécifiquement? – onedaywhen
Le coût est décimal (9,2) et 15 est int. – Kashif