日期:2014-05-19  浏览次数:20408 次

关于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
*/