当前位置:编程学习 > JAVA >>

java取mysql中的float类型数值,显示与数据库中不一样

     struts2+hibernate+spring 框架做一个订单系统,当用数据库中的订单来结算时发现系统的用户剩余金额老是会不对,跟踪一些天发现系统有时候取订单金额时,取出来的数值与数据库中的数据不一样,如:昨天我发现一个订单的金额是2055但是他取出来显示却是2038差了17啊!!!真要命,我没有遇到过这种问题,不知道哪位大哥可以指点一下!
     取订单方法:
public List getOrdersListInfo(String orderno,int sendState)
{
return this.getHibernateTemplate().find("from Orders as os where (os.orderno='"+orderno+"' or os.ule_orderid='"+orderno+"') and os.sendstate='"+sendState+"'");
}

     处理订单的方法:
for(int i=0;i<list.size();i++){
Orders os = (Orders) list.get(i);
String strTime = simpleDateFormat.format(new Date());
SysUser su = businessDao.getOneUser(os.getSysUser().getId());  //查找用户的预占金额
float endProphecymoney = su.getProphecymoney()-os.getOrdermoney(); //用户预占金额减去该笔订单的钱
float endUsermoney = su.getUsermoney()-os.getOrdermoney(); //用户可用金额减去货品金额
float endUsercredit = Float.parseFloat(su.getUsercredit())+os.getOrdermoney(); /
                  businessDao.updateSysUserMoney(endProphecymoney,endUsermoney,endUsercredit,os.getOrdermoney(),su.getId()); //更新客户预占金额、可用金额、累计货品金额、上次够买金额
                  String log = "订单号为"+order_id+"的订单扣款成功!扣除商品金额为"+os.getOrdermoney()”;
   
      }
就是蓝色那个订单金额不对,2055 取出操作却变成2038 --------------------编程问答-------------------- 现在也遇到同样的问题,关注! --------------------编程问答-------------------- 楼主请问解决了吗? --------------------编程问答-------------------- 对于这种金额最好不要用float类型,最好用整型,然后在程序里换算
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,