Когда на Sql Server 05 делятся 2 десятичных (30,10) числа, кажется, что последние 2 десятичных знака теряются (даже не округляются, а просто усекаются).
Например:
Declare @x decimal(30,10)
Declare @y decimal(30,10)
Declare @z decimal(30,10)
select @x = 2.1277164747
select @y = 4.8553794574
Select @z = @y/@x
select @z
Результат: 2.28196731 00
Но если 2 числа, которые делятся, конвертируются в число с плавающей точкой, это похоже на работу:
....
Select @z = cast(@y as float)/cast(@x as float)
select @z
Результат: 2.28196731 81
Почему Sql делает это? И как правильно делить десятичные дроби без потери точности в Sql.