I ran into a strange MSSQL behaviour.
I wanted to do some calculation and output it in my application like this:
Declare @aFlaot float
set @aFlaot = 3*1/2
select @aFlaot aFlaot
From above I was expecting a float value as I was storing it in a float type variable but it was returning 1 ( as an integer)
And when I tried following I got back right value with correct decimals
Ex 1)
set @aFlaot = 3*1.0/2
select @aFlaot aFlaot
Returned 1.5 (as expected)
Ex 2)
declare @aVal float
set @aVal = 1
set @aFlaot = 3*@aVal/2
select @aFlaot aFlaot
Returned 1.5 (as expected)
What I understand is SQL decides on the basis of values you are using in your calculation not the container type you are using.
No comments:
Post a Comment