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