亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

double類型的兩個數(shù)相減可能存在誤差,比如System.out.println(2099 - 1999.9);的結(jié)果為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)); }}

結(jié)果:

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

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

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 成人国产精品一级毛片天堂 | 激情婷婷丁香 | 国产黄色片在线观看 | 精品国产91久久久久 | 国产成人免费网站在线观看 | 国产在线精品99一卡2卡 | 久久免费观看国产精品88av | 欧美成人777 | 欧美韩国日本在线 | 国产美女在线免费观看 | 毛片视频网站在线观看 | 久久免费精品国产72精品剧情 | 在线观看精品国内福利视频 | 日韩精品亚洲一级在线观看 | 亚洲一二三区在线观看 | 日本美女视频韩国视频网站免费 | 韩国色网 | 欧美一级特黄aaaaaa在线看首页 | 91视频黄| 风间中文字幕亚洲一区中文馆 | 国产一级特黄aa大片免费 | 免费在线观看黄 | 韩国一级毛片大全女教师 | 国产精品亚洲片在线观看麻豆 | 久久精品大全 | 一级黄色毛片免费看 | 国产成人高清精品免费5388 | 天天射夜夜骑 | yellow中文字幕视频在线 | aa国产 | 黑人黑粗硬视频 | 成年啪啪网站免费播放看 | 亚洲巨乳自拍在线视频 | 国产精品久久精品福利网站 | 亚洲一区二区三区免费视频 | 国产一级一级一级国产片 | 欧美一级毛片一级毛片 | 特黄特色的视频免费播放 | 国产合集91合集久久日 | 欧美精品免费线视频观看视频 | 国产a毛片高清视 |