关闭

Java关于金额计算的选择方案

528人阅读 评论(3) 收藏 举报
分类:

  这次项目中有支付的模块,所以就会涉及到钱的计算,从网上查了写资料,发现大家都用BigDecimal,与此同时都说不用double,为什么就不用double呢?


  其实大家用BigDecimal的原因是因为它具有更高的精度和更小的范围。那double和BigDecimal相比,精度差多少呢,看下图:


  其实在实际的使用中,我根本不需要这么高的精度,感觉使用double也没什么问题,不过double在设置精度的时候没有BigDecimal方便,所以更倾向使用BigDecimal。


  其实遇到这个问题的时候,我也请教了一些人,我姐夫兼某架构师给出一个很巧妙的方案,


  因为我们涉及的金额不会很大,而且精度只要求到两位,所以他给出的方案用int处理,所有的运算都乘以100,数据库也可以用int,只有在需要显示的时候处理下就行,这样既没有精度问题,运算起来的效率也要比double或者BigDecimal都要高很多。


  如果大家还有什么更好的方案,可以提出来哈,共享下,集体的智慧是无穷的。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:141133次
    • 积分:4625
    • 等级:
    • 排名:第6570名
    • 原创:101篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1766条
    最新评论