Servidor SQL Precisión Locura

Tengo un problema con la precisión del servidor SQL.

Tengo las siguientes consultas:

DECLARE @A numeric(30,10)
DECLARE @B numeric(30,10)
SET @A = 20.225
SET @B = 53.3875
SELECT @A * @B

DECLARE @A1 numeric(30,14)
DECLARE @B1 numeric(30,14)
SET @A1 = 20.225
SET @B1 = 53.3875
SELECT @A1 * @B1

DECLARE @A3 numeric(30,15)
DECLARE @B3 numeric(30,15)
SET @A3 = 20.225
SET @B3 = 53.3875
SELECT @A3 * @B3

DECLARE @A2 numeric(20,15)
DECLARE @B2 numeric(20,15)
SET @A2 = 20.225
SET @B2 = 53.3875
SELECT @A2 * @B2

DECLARE @A4 float
DECLARE @B4 float
SET @A4 = 20.225
SET @B4 = 53.3875
SELECT @A4 * @B4

Lo que produce los siguientes resultados respectivamente:

1079.762188

1079.762188

1079.7621875

1079.762187500000000000000000000

1079.7621875

La respuesta correcta es: 1079.7621875.

No entiendo por qué, cuando los tipos tienen la misma firma están perdiendo precisión. Además, ¿por qué pasar de 30,14 a 30,15 soluciona el problema de precisión? Además, ¿por qué 20,15 tiene tantos decimales más que 30,15?

He leido este articulohttp://msdn.microsoft.com/en-us/library/ms190476(SQL.90).aspx y creo que debería estar bien porque mis variables tienen la misma precisión.

Cualquier ayuda sería muy apreciada!

Respuestas a la pregunta(2)

Su respuesta a la pregunta