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

float小数位数的问题
我在SQL   SERVER一表中一个float类型的列,我在程序datagridview中输入90.1,在更新到表里时,给我变成了90.0999984741211,请问怎么才能让它不这门变啊,我录多少,他就存成多少,或则怎么指定float列的小数位数啊,我一般只会用到两位小数.

------解决方案--------------------
为什么不用decimal类型呢?它可以控制位数啊。
------解决方案--------------------
不可能,浮点数本身不精确,而有限十进制小数作为二进制小数可能是无限小数
90.1即使这种情况,其实二进制有限小数很少,只有2的n次方分之一的组合,才是二进制有限小数,在你把这个数存到计算机里的时候,它的值已经变了

输出的时候,指定格式就可以了,让他舍入一下,保留1位小数