当double类型数学计算精度偏差解决
使用Java.math包中的BigDecimal類(lèi)進(jìn)行高精度計(jì)算
????????1.? 通過(guò)構(gòu)造函數(shù)的方式把要計(jì)算的值給BigDecimal對(duì)象傳入,使用BigDecimal對(duì)象進(jìn)行乘除加減操作
//通過(guò)構(gòu)造函數(shù)的方式把要計(jì)算的值給BigDecimal對(duì)象傳入,使用BigDecimal對(duì)象進(jìn)行乘除加減操作 BigDecimal b1 =new BigDecimal(值);? ? ? ? 2.使用方法
????????add(BigDecimal) ? ? ? ?BigDecimal對(duì)象中的值相加,然后返回這個(gè)對(duì)象。?
????????subtract(BigDecimal) BigDecimal對(duì)象中的值相減,然后返回這個(gè)對(duì)象。?
????????multiply(BigDecimal) ?BigDecimal對(duì)象中的值相乘,然后返回這個(gè)對(duì)象。?
????????divide(BigDecimal) ? ? BigDecimal對(duì)象中的值相除,然后返回這個(gè)對(duì)象。?
????????toString() ? ? ? ? ? ? ? ?將BigDecimal對(duì)象的數(shù)值轉(zhuǎn)換成字符串。?
????????doubleValue() ? ? ? ? ?將BigDecimal對(duì)象中的值以雙精度數(shù)返回。?
????????floatValue() ? ? ? ? ? ? 將BigDecimal對(duì)象中的值以單精度數(shù)返回。?
????????longValue() ? ? ? ? ? ? 將BigDecimal對(duì)象中的值以長(zhǎng)整數(shù)返回。?
????????intValue() ? ? ? ? ? ? ? 將BigDecimal對(duì)象中的值以整數(shù)返回。
? ? ? ? 3. 注意事項(xiàng)
? ? ? ? 把double類(lèi)型作為值傳入構(gòu)造函數(shù)依然無(wú)法解決計(jì)算精度偏差問(wèn)題,解決方案,先把double類(lèi)型轉(zhuǎn)化為String類(lèi)型,再把String類(lèi)型傳入BigDecimal構(gòu)造函數(shù),再進(jìn)行調(diào)用方法計(jì)算即可。
只講實(shí)用,如果想看詳細(xì)的解釋和原理...可以參考以下兩篇博客
BigDecimal的使用方法_sunny-CSDN博客_bigdecimal使用
java 中 BigDecimal 詳解_代碼君的博客-CSDN博客_bigdecimal
總結(jié)
以上是生活随笔為你收集整理的当double类型数学计算精度偏差解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信用卡销户还能恢复吗
- 下一篇: 投资股票的选股方法 注意这几个方面就可