日期:2014-05-18  浏览次数:20813 次

从数据库读取float型数后相加的误差问题
我在程序中从数据库读取一个存储为float型的数据,它的值是0.06,读取时所用的方法是(float)(SqlDataReader.GetDouble()),然后对以此数为一个常量用在程序中.

但此常量经过50次累加后(即51个该常量相加),所得数字为3.059998,而不是3.06,这是为什么?有什么方法可以解决此问题么?

相关环境:
sqlserver2000
.net   1.1   vs2003

------解决方案--------------------
Double的精度比FLOAT的精度高
------解决方案--------------------
精度问题...
------解决方案--------------------
不是精度问题而是浮点误差...改用 decimal 类型...

double 和 float 都是浮点数...一样的问题...