Mike & Kupy, that was done to make it little tricky (and thats why the last option was there). Though it seems many got it correct so most of them are good. For the people who took it wrong, here it goes:
declare @STR varchar(4), @flt1 float, @flt2 float
select @STR = '8E10'
select @flt1 = '8E10'
select @flt2 = 8E10
select ISNUMERIC(@str) as 'StringVar', ISNUMERIC(@flt1) as 'FloatAsChar', ISNUMERIC(@flt2) as 'FloatAsFloat'
The result is:
StringVar FloatAsChar FloatAsFloat
1 1 1
As the function expects the float expression, if there is not the expected type it will try to do an implicit conversion first. If it is able to convert then it works fine as in this case. If not, then it will give error as below:
Msg 8114, Level 16, State 5, Line 7
Error converting data type varchar to float.