货币金额计算(JAVA)
时间:2019-09-30 10:08:24
收藏:0
阅读:444
货币计算避免用Float或Double,会丢失精度。建议用BigDecimal
使用场景
最近在做小程序支付功能,微信提供的统一下单接口金额单位为分,于是需要将金额从元转为分
最开始使用Float进行计算
public static void main(String[] args) { //0.01元 String fee = "0.01"; //转为1分 int money = (int)(Float.parseFloat(fee)*100); System.out.println(money); }
0.01元是没有问题的,换了一个较大的金额“9999999”,结果计算出来的值为9999998.72
于是改用BigDecimal
public static void main(String[] args) { //金额,单位元 String fee = "9999999"; BigDecimal decimal1 = new BigDecimal(fee); BigDecimal decimal2= new BigDecimal(100); //金额,单位转为分 int money = decimal1.multiply(decimal2).intValue(); System.out.println(money); //9999999 }
原文:https://www.cnblogs.com/kiko2014551511/p/11610971.html
评论(0)