关于float类型的问题
发现这么个问题,加一个字段为float,然后增加一个值为0.4
用查询分析器一查,结果成了0.40000000000000002
又增加一个值为0.7 用查询分析器一查成了0.69999999999999996
加一个值为1.23 ,再一查还是1.23
谁能告诉我这是怎么回事啊???? 是float类型的问题,还是数据库的问题?
------解决方案--------------------float是这样的.
显示时转换一下.
cast(col as decimal(18,2))
------解决方案--------------------float 和 real
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示
------解决方案--------------------这个类型就这样。它本来就是模糊数据类型。
如果需要精确的话,用decimal。
------解决方案----------------------如果是想保留兩位小數,可以用Numeric(10,2)
Declare @T Table (A Float, B Numeric(10,2))
Insert @T Select 12.21,12.21
Select * From @T
--Result
/*
AB
12.210000000000001 12.21
*/