这两天做项目过程中由于数据表字段设计的太恶心了,导致自己填坑
关于微信支付和支付宝的支付有一个不同点:就是金额的处理,支付宝金额的单位是0.01元,但是微信支付中1表示0.01元,当时设计价格的时候使用float
自己在测试的过程中当涉及到微信支付时不应该*100或者*100f,因为会造成精度损失。
解决方法:使用BigDecimal 或者通过 转String进行小数点的替换,但是程序运行始终报空。
最后发现原来小数点需要进行转义;
split函数的拆分功能,在使用小数点作为分隔符的时候发现竟然无法拆分,查资料以后发现原来这是一个特殊字符需要在前面加俩反斜杠,spilit("\\."),为了避免以后再次出现类似错误,我有上网搜索了下,同时做了一个总结:
符号表达式
. \\.
| \\|
\\\\\ 注意:这个比较特殊,在字符串中表示\时应转义(\\)
"\"
'\'
代码如下:String total_fee=String.valueOf(actualPay).replaceAll("\\.","");