报错信息很明白invalid total_fee是total_fee参数无效的意思.
根据微信sdk示例及文档要求发现是要填String类型的数据
但是我用的是BigDecimal类型的参数.toString().按道理来讲是String类型应该是没问题的,此时觉得报错很不应该啊.很愁
但是微信的金额要求是以分为单位,所以需要乘100才出现的问题,那么试试乘100之后再转字符串跟字符串的区别在哪里.
以下为运行代码:
BigDecimal a = new BigDecimal("100").multiply(new BigDecimal("0.01"));
System.out.println("toString(): " + a.toString());
System.out.println("String.valueOf(): " + String.valueOf(a));
System.out.println("toPlainString(): " + a.toPlainString());
System.out.println("toEngineeringString(): " + a.toEngineeringString());
System.out.println("stripTrailingZeros(): " + a.stripTrailingZeros().toString());
System.out.println("1");
运行结果:
完了之后发现多了.00
找到问题就好说了.
结果:
去掉多余的0再toString.解决
a.stripTrailingZeros().toString()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)