這兩天做項目過程中由於數據表字段設計的太惡心了,導致自己填坑
關於微信支付和支付寶的支付有一個不同點:就是金額的處理,支付寶金額的單位是0.01元,但是微信支付中1表示0.01元,當時設計價格的時候使用float
自己在測試的過程中當涉及到微信支付時不應該*100或者*100f,因為會造成精度損失。
解決方法:使用BigDecimal 或者通過 轉String進行小數點的替換,但是程序運行始終報空。
最后發現原來小數點需要進行轉義;
split函數的拆分功能,在使用小數點作為分隔符的時候發現竟然無法拆分,查資料以后發現原來這是一個特殊字符需要在前面加倆反斜杠,spilit("\\."),為了避免以后再次出現類似錯誤,我有上網搜索了下,同時做了一個總結:
符號表達式
. \\.
| \\|
\\\\\ 注意:這個比較特殊,在字符串中表示\時應轉義(\\)
"\"
'\'
代碼如下:
String total_fee=String.valueOf(actualPay).replaceAll("\\.","");