SQL Server 2005 : Conversion d'une valeur varchar "1.23 E-4' à virgule échoue

declare @a varchar(40)
set @a='1.23e-4'
declare @b decimal(27,12)

if isnumeric(@a) =1
begin

    select @b=cast(@a as decimal(27,12))

end
else
begin
    select @b=-1
end

select @b

quand exeucting au-dessus de code sql sous SQL 2005 de l'environnement, je suis d'erreur suivant.

Erreur de conversion de type de données varchar numérique

quelqu'un sait pourquoi?

grâce.

OriginalL'auteur N30 | 2010-01-27