回 帖 发 新 帖 刷新版面

主题:不知哪里出错了

在数据库中定义的合同金额、请款总额,都是decimal类型,小数位数为6位,取值的时候用的float类型:(所用方法都已经定义过了,这里只写相关的语句)
float htamount=rs.getFloat("htamount");
float qktotal=rs.getString("qktotal");
float xfk=htamount-qktotal;
这里的xfk出问题了,前两次相减不出问题,到第三次就有问题。比如:
htamount是14.0,第一次的qktotal是2.8,那么xfk是11.2;
                第二次的qktotal是5.6,那么xfk是8.4;
                第三次的qktotal是12.6,那么xfk是1.4000006(应该是1.4)
不知道怎么回事?
是我的数据类型定义错了,还是计算有误差?希望大虾能帮我指点一下。

回复列表 (共1个回复)

沙发

数据精度问题,自己取有效位数

我来回复

您尚未登录,请登录后再回复。点此登录或注册