微信支付元转分的正确姿势
生活随笔
收集整理的這篇文章主要介紹了
微信支付元转分的正确姿势
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.背景
近期做了一個(gè)涉及微信支付的項(xiàng)目,由于工期比較緊張,所以引用了一款GitHub上的第三方SDK,開發(fā)效率還是蠻高的。但是在使用的過程中,確實(shí)也遇到一些bug。此處分享一下元轉(zhuǎn)分的正確實(shí)現(xiàn)方式。
2.第三方SDK之前的遺漏版本
1.源代碼
public static Integer Yuan2Fen(Double yuan) {//(重點(diǎn))Double直接轉(zhuǎn)BigDecimal丟失精度return new BigDecimal(yuan).movePointRight(2).intValue();}2.測試
public class YuanToFenTest {//錯(cuò)誤的元轉(zhuǎn)分方式public static Integer WrongYuan2Fen(Double yuan) {//(重點(diǎn))Double直接轉(zhuǎn)BigDecimal丟失精度return new BigDecimal(yuan).movePointRight(2).intValue();} public static void main(String[] args) {Double money = 0.03;BigDecimal bmoney = new BigDecimal(money);System.out.println("Double直接轉(zhuǎn)BigDecimal結(jié)果:"+bmoney);Integer wmoney = WrongYuan2Fen(money);System.out.println("錯(cuò)誤的元轉(zhuǎn)分結(jié)果:"+wmoney);} }3.測試運(yùn)行結(jié)果
Double直接轉(zhuǎn)BigDecimal結(jié)果:0.0299999999999999988897769753748434595763683319091796875 錯(cuò)誤的元轉(zhuǎn)分結(jié)果:23.元轉(zhuǎn)分的正確姿勢
1.源代碼
public static Integer Yuan2Fen(Double yuan) {return new BigDecimal(String.valueOf(yuan)).movePointRight(2).intValue();}2.測試
public class YuanToFenTest {//正確的元轉(zhuǎn)分方式public static Integer CorrectYuan2Fen(Double yuan) {//(重點(diǎn))Double直接轉(zhuǎn)BigDecimal丟失精度,此處需要將Double轉(zhuǎn)換為Stringreturn new BigDecimal(String.valueOf(yuan)).movePointRight(2).intValue();} public static void main(String[] args) {Double money = 0.03;Integer cmoney = CorrectYuan2Fen(money);System.out.println("正確的元轉(zhuǎn)分結(jié)果:"+cmoney);} }3.測試運(yùn)行結(jié)果
正確的元轉(zhuǎn)分結(jié)果:34.另一種方式
將Double類型轉(zhuǎn)換為BigDecimal類型:
Double money=0.03; BigDecimal bmoney = BigDecimal.valueOf(money);總結(jié)
以上是生活随笔為你收集整理的微信支付元转分的正确姿势的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 绘制扇形区域
- 下一篇: 原生实现点击li变颜色