j**a代码中如何优雅地处理货币金额数据

歌者与鹿 2024-06-02 09:55:21
最佳回答
1程序引入开源类库 joda-money 相关依赖 joda-money 是一个用于表示货币金额的开源j**a类库,使用该类库处理金额相关数据,可以让你免去对数据精度的担忧。要想使用 joda-money, 首先引入相关依赖,在 pom.xml 中添加如下内容:<dependency> <groupid>org.joda</groupid> <artifactid>joda-money</artifactid> <version>1.0.1</version> </dependency> <dependency> <groupid>org.jadira.usertype</groupid> <artifactid>usertype.core</artifactid> <version>6.0.1.ga</version> </dependency> 2使用 joda-money 创建一个货币金额对象joda-money 提供了一个 money 来表述一个货币金额 (底层使用的是 bigdecimal ),该类提供了一系列静态方法创建相应的对象,注意,在创建 money 对象时,必须指定货币代码来标注该数据对应的具体币种!比如人民币的货币代码是cny, 美元的货币代码是 usd ,日元的 jpy 等。 3币种对应的最大小数位校验每种币种都定义了一个默认最大的小数位,比如人民币最大小数位是 2(即最小数值单位为“分”),美元最大小数位也是 2,日元最大小数位是 0,在指明货币代码和数值创建 money 对象时,如果你的数值的小数位超过具体货币允许的最大小数位,会报错。 4货币对象的加法与减法操作通过 money 类提供的 plus 和 minus 方法即可实现多个 money 对象的加减操作,但必须注意的是,只有同一货币的 money 对象才能直接进行运算,否则会报错! 5货币对象的乘法与除法操作通过 money 类提供的 multipliedby 和 dividedby 实现 money 对象和一个数字的乘除运算,因为在运算过程中,会出现小数位数量超过该货币最大允许小数位,因此需要通过 roundingmode 指定小数位的处理方式。roundingmode 中定义了很多小数位相关的处理方式,比如 roundingmode.half_up 为四舍五入,roundingmode.down 为直接抛弃超出的精度等。6货币之间的转换操作money对象提供了一种货币到另一种货币的转换,只需提供另一种货币的代码和汇率信息即可,和乘除法类似,在转换过程中,会出现小数位数超出目标货币所允许的最大位数,因此同样需要指定小数位的处理方式。7货币存库通过使用 joda-money 来处理货币信息,如果要将这些数值存入数据库中,有如下两种方式:1. 获取 money 对象内部的 bigdecimal 存库2. 将 money 对象对应的数值,转换为对应货币下最小单位对应的整数值,然后存库(避免了精度问题),比如人民币数值全部用“分”来表示。 end 20210311
汇率兑换计算器

类似问答
  • 如何才能成为excel数据处理大神?
    • 2024-06-02 14:18:56
    • 提问者: 未知
    三、二维表转一维表 利用powerquery,二维表转为一维...关于什么是api就不再细说,可以自行搜索相关信息,下面直接介绍powerquery如何调用api,并返回一个位置信息的相关维度。...
  • 如何优雅地送妹子礼物?
    • 2024-06-02 05:11:14
    • 提问者: 未知
    如题,每逢女票生日时总不知道送什么好~~知友们送过或者收过,哪些富有创意又小众的东东?
  • 如何优雅地穿高跟鞋?
    • 2024-06-02 01:53:57
    • 提问者: 未知
    作者:charmi链接:如何挑选合适的高跟鞋?charmi 的回答来源:知乎著作权归作者所有,转载请联系作者…
  • 如何优雅地使用 google ?
    • 2024-06-02 21:03:16
    • 提问者: 未知
    咳咳咳"优雅地"是什么样一种状态?滋滋抽着雪茄算不算?(-_-)google使用技巧 我也是网上找的。
  • 旅行中如何优雅地发朋友圈?
    • 2024-06-02 12:00:04
    • 提问者: 未知
    类似问题:旅行中如何优雅地发微博? - 知乎 最近想出去玩,看盆友圈的图都是九宫格样式的,但是想与众不同一下,有没有方法既能突出当地特色或者文化背景又显得优雅有**一些?有什么小技巧吗? 如果可以的话可以把你们拍过什么好看的照片发来借鉴一下。(题目请不要改动谢谢!)
  • j**a工程师如何进入大数据领域?
    • 2024-06-02 00:41:43
    • 提问者: 未知
    如何进入大数据领域?目前本人j**a开发3年工程师,熟悉linux,mysql及sql编写,kafka和zookeeper集群,正…
  • 请问农商银行数据处理中心数据处理岗位的待遇如何呢?
    • 2024-06-02 06:54:54
    • 提问者: 未知
    主要是从事数据挖掘工作 进行数据模型分析
  • 如何优雅地说废话?
    • 2024-06-02 07:40:16
    • 提问者: 未知
    好多时候跟人聊天,一个有趣的故事到了我这里老是几句话就讲完了;还有写各种东西也是这样,是我概括能力强到不能自控了么.......
  • 旅行中如何优雅地发朋友圈?
    • 2024-06-02 17:08:12
    • 提问者: 未知
    微信的像素太渣,组图就凑合着看吧。这一组照片包含了六张人像,三张风景,为了看起来对称和顺眼,我下了四处功夫: 1.风景...有时候,往图片上加个文字,**也会瞬间暴涨。...
  • 如何优雅地记账?
    • 2024-06-02 21:52:28
    • 提问者: 未知
    “如何优雅地记账?我对本题“优雅”的理解是“适应自身生活方式的记账习惯”过程最好是透明的、灵活的、…
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。