perda de escala ao executar o cálculo

Estou realizando um cálculo e não recebo a resposta que espero. Perco alguma escala ao fazer o cálculo.

Calc é: 651/1000 * -413.72063274 = -269.33213191 (para 8 d.p)

No SQL Server, faço isso:

declare @var numeric(28,8)
declare @a numeric(28,8)
declare @b numeric(28,8)

set @var = -413.72063274
set @a   = 651.00000000
set @b   = 1000.00000000

select CAST((@a/@b) * @var as numeric(28,8)) as result_1
     , CAST(CAST(@a as numeric(28,8)) 
      /CAST(@b as numeric(28,8)) as numeric(28,8)) 
      *CAST(@var as numeric (28,8))   as result_2

Os resultados são

result_1: -269.33213200 (correto para 6dp)
result_2: -269.332132 (correto para 6dp)

Como obtenho a consulta retornada: -269.33213191 (correto para 8dp)?

questionAnswers(3)

yourAnswerToTheQuestion