博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中涉及到金额业务的处理
阅读量:5166 次
发布时间:2019-06-13

本文共 575 字,大约阅读时间需要 1 分钟。

一、MySql数据库中如何定义关于金额字段:

       建议定义成【DECIMAL】类型,而不是float或者是double,因为这个两者是以二进制储存的,存在一定的误差。具体事例可参考。

       此外还要注意的就是默认值, 一定写成0.00, 不要用默认的NULL, 否则在进行加减排序等操作时, 会带来转换的麻烦

二、Java实体类中定义成【BigDecimal】类型,涉及到金额的加减乘除及值大小比较,使用其提供的相应方法处理。具体可参考

三、在使用JSONArray.fromObject方法时,如果其中有float类型的值,有时候转化的时候又会出现误差问题,建议将需要传入的数值改成字符串类型,接收到之后在进行转值处理。具体可参考:

 

四、在ireport打印有金额时,有时候又会出现误差问题,试过将对于的值再ireport中Expression属性设置成java.math.BigDecimal,Pattern属性设置成#,##.00,仍是没有作用,处理方法是从查询的sql语句源头出发,将涉及到的金额数值,转化成char类型,如下

select cast(totalMoney as char) as totalMoneyStr from demo

  

转载于:https://www.cnblogs.com/conswin/p/9797952.html

你可能感兴趣的文章
js生成随机数的过程解析
查看>>
创建代码仓库
查看>>
理解裸机部署过程ironic
查看>>
Django 组件-ModelForm
查看>>
zabbix 二 zabbix agent 客户端
查看>>
大数据分析中,有哪些常见的大数据分析模型?
查看>>
Generate SSH key
查看>>
URL中不应出现汉字
查看>>
SSH框架面试总结----1
查看>>
如何防止Arp攻击
查看>>
luoguP1313 [NOIp2011]计算系数 [组合数学]
查看>>
清明 DAY2
查看>>
[LintCode] 全排列
查看>>
Windows内存管理
查看>>
jquery 禁止页面提交的小方法
查看>>
ClassList 标签的用法
查看>>
2017/5/10 freeCodeCamp Bootstrap部分总结
查看>>
结对编程项目作业4
查看>>
小细节:Java中split()中的特殊分隔符 小数点
查看>>
The Queue Implementations With Array List
查看>>