zoukankan      html  css  js  c++  java
  • java 常用类库:BigInteger大整数;BigDecimal大小数(解决double精度损失);

    大整数BigInteger

    package com.zmd.common_class_libraries;
    
    import java.math.BigInteger;
    
    /**
     * @ClassName BigNumberExample
     * @projectName: object1
     * @author: Zhangmingda
     * @description: XXX
     * date: 2021/4/7.
     */
    public class BigNumberExample {
        public static void main(String[] args) {
            BigInteger a = new BigInteger("999999999999999999999999999999999999999999");
            BigInteger b = new BigInteger("888888888888888888888888888888888888888888");
            //加法
            System.out.println(a.add(b));
            //减法
            System.out.println(a.subtract(b));
            //乘法
            System.out.println(a.multiply(b));
            //除法
            System.out.println(a.divide(b));
        }
    }

    长小数BigDecimal

    package com.zmd.common_class_libraries;
    
    import java.math.BigDecimal;
    import java.math.BigInteger;
    
            BigDecimal a = new BigDecimal("999999999999999999999999999999999999999999.999999999999999999999999999999999999999999");
            BigDecimal b = new BigDecimal("888888888888888888888888888888888888888888.888888888888888888888888888888888888888888");
            //加法
            System.out.println(a.add(b));
            //减法
            System.out.println(a.subtract(b));
            //乘法
            System.out.println(a.multiply(b));
            //除法
            System.out.println(a.divide(b));
        }
    }

     double 精度损失

    package com.zmd.common_class_libraries;
    
            import java.math.BigDecimal;
            import java.math.BigInteger;
    
    /**
     * @ClassName BigNumberExample
     * @projectName: object1
     * @author: Zhangmingda
     * @description: XXX
     * date: 2021/4/7.
     */
    public class BigNumberExample {
        public static void main(String[] args) {
            //double精度损失
            double da = 0.05;
            double db = 0.01;
            System.out.println(da + db);
            //等于0.060000000000000005
    
            //BigDecimal可以解决此问题
            BigDecimal ba = new BigDecimal("0.05");
            BigDecimal bb = new BigDecimal("0.01");
            System.out.println(ba.add(bb));
            //0.06
        }
    }
  • 相关阅读:
    c#读取Excel并显示出来
    异步编程模型。
    细分线程的等待(WaitAny,WaitAll),区别于Thread.Join
    waitany,waitall在线程池中的使用。from msdn
    SQL SET NOCOUNT ON的含义和作用
    MS ゴシック与MS UI Gothic的区别
    线程的管理1
    HDU 1203 I NEED A OFFER!(背包)
    hdu 1232 畅通工程
    POJ 1088 滑雪
  • 原文地址:https://www.cnblogs.com/zhangmingda/p/14627741.html
Copyright © 2011-2022 走看看