Я разделил 500/15, а затем умножил результат обратно на 15, но я получил разные результаты для разных Точности и Шкалы.
Пожалуйста, запустите следующий скрипт.
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
Iнужно хранить этот расчет в дБ и мне нужна максимальная точность.Это не какое-то научное приложение, но клиент должен иметь это.
Что я хочу знать, мне нужна точность, которая дает мне десятичное число (36, 5).Должен ли я использовать это, потому что ему нужно 17 байтов?Какой должен быть лучший подход для получения точности, которую я объяснил в примерах?