Для 4 десятичных знаков используйте деньги, если можете
Причина: она быстрее десятичной, но точна
Деньги, число с плавающей запятой, десятичное число артикул
Редактировать: на основе комментария
Интересный аргумент. Я слежу за обоими блогами.
Обратите внимание на приведенные здесь примеры: различная точность в зависимости от типов данных и приоритета
declare @d decimal(19,4), @ddiv decimal(19,4)
set @d = 12.39
SET @ddiv = 1000
select (@d/@ddiv)*@ddiv, (@d/1000)*1000
--Gives 12.390000 12.390000000
Объясняется моим ответом здесь: " Точность десятичного деления T-SQL "
Теперь это интересно. Десятичные, разные ответы
declare @d decimal(19,4), @ddiv decimal(19,4)
set @d = 12.39
SET @ddiv = 1001
select (@d/@ddiv)*@ddiv, (@d/1001)*1001
--Gives 12.390000 12.389999622
Вернуться к деньгам: один и тот же ответ для каждого
declare @d money, @ddiv money
set @d = 12.39
SET @ddiv = 1001
select (@d/@ddiv)*@ddiv, (@d/1001)*1001
--Gives 12.3123 12.3123
Мораль: хранить в SQL, обрабатывать на клиентских языках ...