亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

double四舍五入問題 求解

double四舍五入問題 求解

MMMHUHU 2018-07-11 19:18:39
BigDecimal decimal = new BigDecimal(0.005);         BigDecimal decimal2 = new BigDecimal(0.015);         DecimalFormat   df   =new   DecimalFormat("0.##");         df.setRoundingMode(RoundingMode.HALF_UP);         System.out.println(df.format(decimal.doubleValue()));         System.out.println(df.format(decimal2.doubleValue()));輸出的答案都是0.01 為什么,我希望第二個輸入的是0.02
查看完整描述

4 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

沒問題啊,代碼測試結果就是0.02啊

https://img1.sycdn.imooc.com//5b5584e90001a76e08370651.jpg

查看完整回答
反對 回復 2018-07-23
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

decimal Round(decimal d, int decimals, MidpointRounding mode)
可以試試這個能不能用

查看完整回答
反對 回復 2018-07-23
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

如果需要保證精度,最好是不要使用BigDecimal的double參數的構造函數,因為存在損失double參數精度的可能,最好是使用BigDecimal的String參數的構造函數。最好是杜絕使用BigDecimal的double參數的構造函數。

查看完整回答
反對 回復 2018-07-23
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

new BigDecimal最好用string,你直接寫數字的話,結果不是你想要的,
這樣:BigDecimal decimal2 = new BigDecimal("0.015");
如果需要保證精度,最好是不要使用BigDecimal的double參數的構造函數,因為存在損失double參數精度的可能,最好是使用BigDecimal的String參數的構造函數。最好是杜絕使用BigDecimal的double參數的構造函數

查看完整回答
反對 回復 2018-07-23
  • 4 回答
  • 0 關注
  • 1070 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號