日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java数值运算后精度丢失问题

發(fā)布時間:2025/7/14 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java数值运算后精度丢失问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近連續(xù)倆次遇到運(yùn)算后數(shù)值精度丟失問題,所以記錄一下。

問題1:java計(jì)算百分比,應(yīng)該得到57,可返回的就是56

  在java代碼中

BigDecimal progress;BigDecimal a = new BigDecimal(POF);BigDecimal b = new BigDecimal(RF);if(b.compareTo(a)==1&&b.subtract(a).longValue()<1000000){return 100;}progress = a.divide(b,2,BigDecimal.ROUND_UP);return progress*100 ;

這段代碼的計(jì)算都是用BigDecimal運(yùn)算的,這沒什么問題。可惜啊!return progress*100 ; 功虧一簣!

?

BigDecimal progress;BigDecimal a = new BigDecimal(POF);BigDecimal b = new BigDecimal(RF);if(b.compareTo(a)==1&&b.subtract(a).longValue()<1000000){return 100;}progress = a.divide(b,2,BigDecimal.ROUND_UP); BigDecimal multiply = progress.multiply(new BigDecimal(100));return multiply.intValue();

?

問題二:??? 在jsp頁面中對金額計(jì)算,0.00元竟然還帶個負(fù)號

?

?在java中測試

?

double浮點(diǎn)型,計(jì)算結(jié)果確實(shí)不是0,而是一個近似0的負(fù)數(shù)。

解決方案:

(由于我后臺返回的數(shù)據(jù)都是保留小數(shù)點(diǎn)后兩位,所以對運(yùn)算數(shù)字先升級運(yùn)算,再對結(jié)果降級處理

累計(jì)其他 :{{$itzUtils.thousands(((dczqt*100-dczdcz*100)/100).toFixed(2))}}元</span>

?

轉(zhuǎn)載于:https://www.cnblogs.com/caoyajun33-blog/p/8029299.html

總結(jié)

以上是生活随笔為你收集整理的java数值运算后精度丢失问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。