The Float / Real (=> Float(24)) datatype are Approximate-number data types. This means you can run into trouble converting them to other type or doing math with them:
From the documentation:
Approximate-number data types for use with floating point numeric data. Floating point data is approximate; therefore, not all values in the data type range can be represented exactly.
(see: http://msdn.microsoft.com/en-us/library/ms173773(v=sql.110).aspx)
Converting example:
DECLARE @f as Float = '29545428.022495';
select cast(@f as numeric(28,14));result:
29545428.02249500200000
Math Example:
DECLARE @f as Float = '29545428.022495';
select cast(((@f * 4))as numeric(28,14)) ;
118181712.08998001000000
result:
select cast(@f as numeric(28,14)) * 4 ;result:
118181712.08998000800000
Till Next Time
No comments:
Post a Comment