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

问题描述

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类型,最好用整型,然后在程序里换算

时间: 2024-12-03 16:10:01

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

vb.net(basler相机SDK抓取图像数据流后,将图片显示在picturebox中)

问题描述 vb.net(basler相机SDK抓取图像数据流后,将图片显示在picturebox中) vs2012,vb.net编程,basler相机的sdk取像得到数据流后basler有自己的方法显示图片,但我不要中他的方法,我要显示在自己的picturebox控件中,自己写了一段程序,如图,102行一直提示说参数无效,求解! 解决方案 图太小了,看不见.你可以先保存为bmp 用picturebox1.Image = Image.FromFile(文件)

将mysql数据库表中的部分数据导入到oracle数据库中

问题描述 将mysql数据库表中的部分数据导入到oracle数据库中 有一个问题:需要将Mysql数据库表中的某些数据导入oracle数据库的表中,需要通过传递文件来实现.比如将mysql数据生成.sql文件,然后执行该文件就可以写入到oracle数据库中.希望各位高手给个思路,谢谢 解决方案 可以用sql命令把数据导出到文件,e然后再把文件导入数据库 解决方案二: 你自己思路不是已经很清晰了吗? or你的意思是需要定时自动导入? 自动导入的话 估计需要借助写个程序实现了 解决方案三: 你自己思

把一个数据库中的数据导入到另一个数据库中

问题描述 把一个数据库中的数据导入到另一个数据库中.我写java程序 要建立两个数据库连接.有木有好点的办法.数据交换解决不了我的问题,我这里有逻辑处理.急啊. 问题补充:Rainbow702 写道 解决方案 ① 与数据库A建立连接② 从A取得数据③ 处理这些数据④ 与数据库B建立连接⑤ 将处理后的数据插入B中解决方案二:如果数据库类型一样,字段一样,直接用数据库备份工具就可以了,方便快捷解决方案三:引用这样的话就要创建两个conn对象.会不会出现问题为什么会出问题呢?你把你获取 conn 的方

c#-C#中怎么在datagridview里面直接修改数据库中的数据

问题描述 C#中怎么在datagridview里面直接修改数据库中的数据 C#中怎么在datagridview里面直接修改数据库中的数据 解决方案 这个要看你是怎取的数据,如果是在系统里面直接通过配置dataset出来的,你可以直接配下dataset里的update方法,dataGridView更改后用AcceptChanges,就能更新了!如果查询那些是自己写的,就得自己写Update方法. 解决方案二: C#中怎么在datagridview里面直接修改数据库中的数据 直接修改数据库的内容比较

javascript-使用JavaScript讲TXT中的用户名,密码插入到数据库中

问题描述 使用JavaScript讲TXT中的用户名,密码插入到数据库中 使用JavaScript讲TXT中的用户名,密码插入到数据库中,希望给个源码例子看看 解决方案 js在客户端运行接触不到数据库,一般是js获取用户输入,用ajax方式post到你的java后端,java得到参数插入数据库. 解决方案二: 你是光学前端吗?如果你学过后端编程,可以通过后端程序进行插入数据 解决方案三: javascript没有和数据库直接相连的驱动,因为javascript代码很容易被篡改,所以一点都不安全,

Excel中的数据如何导入到Access数据库中?

  现在大多数人记录数据都是用excel,但是一些程序员需要将Excel中的数据导入Access数据库中,编写一个另外的程序,但是对于初学者来说这还是挺艰难的,那么现在我就为大家讲解如何将Excel中的数据导入到Access数据库中. 找到自己需要做改变的Excel和Access 为了避免自己以后的,所以第一个步骤看似无关重要,但是却缺一不可.确保Excel中的数据导入数据库不要出错,不然一切白费. 新建数据库,开始执行操作 在数据库上方有一个外部数据,点击外部数据存在一个"导入Excel表格功

sql2000数据库-如何解决在iReport 的 Preview 中正确显示SQL2000 数据库中的中文?

问题描述 如何解决在iReport 的 Preview 中正确显示SQL2000 数据库中的中文? 我是新手,问题如下: 用iReport 5.1.0,只要不是从数据库中取出的中文在iReport 的Preview 均能正常显示,但用SELECT 从SQL2000 读取含有中文的字段数据,在iReport 的 Preview 中显示的是乱码,更不用说再生成PDF 是PDF中中文部分是乱码了,而如果数据库改为SQL 2005 ,则含有中文的字段一切正常.问题:如何解决在iReport 的 Prev

asp.net中登录页面用户名和密码与数据库中数据进行比对出错,求大神指导!!!!

问题描述 asp.net中登录页面用户名和密码与数据库中数据进行比对出错,求大神指导!!!! dr['AID']=112100011TextBox1.Text=1121000177 dr['apassword']=245fghTextBox2.Text=123456 dr['AID']=1121000177TextBox1.Text=1121000177 dr['apassword']= 123456TextBox2.Text=123456 用户名或密码不正确,请重新输入! 这是运行时页面打印出

mysql中sum float类型使用小数点的方法_Mysql

方法一:最好的办法是将float字段改为decimal(16,6).具体方法:可设置一个临时字段,结合MySQL的关键字binary进行准确复制等.方法二:使用binary关键字解决.具体操作为"select sum(binary 字段名(float类型))"BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串例子: 复制代码 代码如下:     "select sum(a.number*binary(b.price)) as total