问题描述
struts2+hibernate+spring框架做一个订单系统,当用数据库中的订单来结算时发现系统的用户剩余金额老是会不对,跟踪一些天发现系统有时候取订单金额时,取出来的数值与数据库中的数据不一样,如:昨天我发现一个订单的金额是2055但是他取出来显示却是2038差了17啊!!!真要命,我没有遇到过这种问题,不知道哪位大哥可以指点一下!取订单方法:publicListgetOrdersListInfo(Stringorderno,intsendState){returnthis.getHibernateTemplate().find("fromOrdersasoswhere(os.orderno='"+orderno+"'oros.ule_orderid='"+orderno+"')andos.sendstate='"+sendState+"'");}处理订单的方法:for(inti=0;i<list.size();i++){Ordersos=(Orders)list.get(i);StringstrTime=simpleDateFormat.format(newDate());SysUsersu=businessDao.getOneUser(os.getSysUser().getId());//查找用户的预占金额floatendProphecymoney=su.getProphecymoney()-os.getOrdermoney();//用户预占金额减去该笔订单的钱floatendUsermoney=su.getUsermoney()-os.getOrdermoney();//用户可用金额减去货品金额floatendUsercredit=Float.parseFloat(su.getUsercredit())+os.getOrdermoney();/businessDao.updateSysUserMoney(endProphecymoney,endUsermoney,endUsercredit,os.getOrdermoney(),su.getId());//更新客户预占金额、可用金额、累计货品金额、上次够买金额Stringlog="订单号为"+order_id+"的订单扣款成功!扣除商品金额为"+os.getOrdermoney()”;}就是蓝色那个订单金额不对,2055取出操作却变成2038
解决方案
解决方案二:
现在也遇到同样的问题,关注!
解决方案三:
楼主请问解决了吗?
解决方案四:
对于这种金额最好不要用float类型,最好用整型,然后在程序里换算