国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java用BigDecimal解決double類型相減時可能存在的誤差

瀏覽:41日期:2022-09-01 16:17:15

double類型的兩個數(shù)相減可能存在誤差,比如System.out.println(2099 - 1999.9);的結果為99.09999999999991

可以用BigDecimal解決:

public class TestDouble { //兩個Double數(shù)相減 public static Double sub(Double d1, Double d2) { if (d1 == null || d2 == null) { return null; } BigDecimal b1 = new BigDecimal(d1.toString()); BigDecimal b2 = new BigDecimal(d2.toString()); return b1.subtract(b2).doubleValue(); } //兩個Double數(shù)相加 public static Double add(Double d1, Double d2) { if (d1 == null || d2 == null) { return null; } BigDecimal b1 = new BigDecimal(d1.toString()); BigDecimal b2 = new BigDecimal(d2.toString()); return b1.add(b2).doubleValue(); } //兩個Double數(shù)相除,并保留scale位小數(shù) public static Double div(Double d1, Double d2, int scale) { if (d1 == null || d2 == null || scale < 0) { return null; } BigDecimal b1 = new BigDecimal(d1.toString()); BigDecimal b2 = new BigDecimal(d2.toString()); return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } // 兩個Double數(shù)相乘 public static Double mul(Double d1, Double d2) { if (d1 == null || d2 == null) { return null; } BigDecimal b1 = new BigDecimal(d1.toString()); BigDecimal b2 = new BigDecimal(d2.toString()); return b1.multiply(b2).doubleValue(); } /** * 遇到.5的情況時往上近似 * * @param d * @param scale * @return */ public static Double setDoubleScale(Double d, int scale) { if (d == null || scale < 0) { return null; } BigDecimal b = new BigDecimal(d); return b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } public static void main(String[] args) { Double d1 = 2099d; Double d2 = 1999.999; System.out.println(d1 - d2); System.out.println(sub(d1, d2)); System.out.println('------------------------------------'); System.out.println(d1 * d2); System.out.println(mul(d1, d2)); System.out.println('------------------------------------'); System.out.println(d1/d2); System.out.println(div(d1,d2,4)); }}

結果:

99.0009999999999899.001------------------------------------4197997.9014197997.901------------------------------------1.04950052475026251.0495

到此這篇關于Java用BigDecimal解決double類型相減時可能存在的誤差的文章就介紹到這了,更多相關Java double相減誤差內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關文章:
主站蜘蛛池模板: 中文字幕色站 | 在线欧美日韩精品一区二区 | a毛片在线看片免费 | 欧美一级毛片免费高清aa | 国产成人综合手机在线播放 | 一区二区三区亚洲 | 国产成人教育视频在线观看 | 天天视频一区二区三区 | 国产日韩精品欧美一区 | 国产成人综合日韩精品无 | 99热热久久这里只有精品166 | 亚洲精品在线免费 | 一区二区三区在线免费观看视频 | 国产精品极品美女自在线看免费一区二区 | 亚洲国语在线视频手机在线 | 久久亚洲私人国产精品 | 91无套极品外围在线播放 | 久久久久久国产精品三级 | 看欧美的一级毛片 | 久久a热6 | 亚洲视频网站在线观看 | 日本成人免费在线 | 精品91精品91精品国产片 | 99精品在线观看 | 免费人欧美成又黄又爽的视频 | 日本欧美做爰全免费的视频 | 亚洲成人第一 | 男女性男女刺激大片免费观看 | 成人的天堂 | 亚洲黄色免费在线观看 | 久久一区二区精品 | 久久久91精品国产一区二区 | 99精品国产在热久久 | 成人免费在线视频 | 日本一级在线播放线观看视频 | 国产高清美女一级a毛片久久 | 中文字幕巨乱亚洲 | 香港三级做爰大爽视频 | 国产一级淫片a免费播放口之 | 玖玖精品在线观看 | 久久国产成人精品国产成人亚洲 |