• JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)


    当基础数据类型长度无法满足需求时可以使用大数类  

    构造方法接受字符串为参数

    1 BigInteger bInt = new BigInteger("123123");
    2 BigDecimal bDouble = new BigDecimal("123123.123123124");

             基础操作(取模使用divideAndRemainder方法,返回的数组第二个元素为余数):

        BigDecimal在做除法时必须设定传入精度(保留多少位小数),否则会出现异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。 

        除法还有两个接受不同数量参数的方法:

        接受两个参数的方法:

          @param divisor value by which this {@code BigDecimal} is to be divided. 传入除数

          @param roundingMode rounding mode to apply. 传入round的模式

        三个参数的方法:

          @param divisor value by which this {@code BigDecimal} is to be divided. 传入除数
          @param scale scale of the {@code BigDecimal} quotient to be returned. 传入精度
          @param roundingMode rounding mode to apply. 传入round的模式

      round模式为小数取舍模式:

        BigDecimal.ROUND_UP:最后一位如果大于0,则向前进一位,正负数都如此。   

        BigDecimal.ROUND_DOWN:最后一位不管是什么都会被舍弃。   

        BigDecimal.ROUND_CEILING:如果是正数,按ROUND_UP处理;如果是负数,按照ROUND_DOWN处理。例如,7.1->8;-7.1->-7。所以,这种近似的结果都会>=实际值。   

        BigDecimal.ROUND_FLOOR:跟BigDecimal_ROUND_CEILING相反。例如,7.1->7;-7.1->-8。这种处理的结果<=实际值。   

        BigDecimal.ROUND_HALF_DOWN:如果最后一位<=5则舍弃,如果>5, 向前进一位。如,7.5->7;7.6->8;-7.5->-7 。  

        BigDecimal.ROUND_HALF_UP:如果最后一位<5则舍弃,如果>=5, 向前进一位。反之舍弃。如,7.5->8;7.4->7;-7.5->-8 。 —>  (四舍五入)常用 

        BigDecimal.ROUND_HALF_EVEN:如果倒数第二位是奇数,按照BigDecimal.ROUND_HALF_UP处理;如果是偶数,按照BigDecimal.ROUND_HALF_DOWN来处理。如,7.5->8;8.5->8;7.4->7;-7.5->-8。


      BigDecimal有一个setScale()方法,可以接受两个参数

        1、保留位数  

        2、round模式

      输出可以直接调用.toString();

  • 相关阅读:
    ASP.NET身份验证机制membership入门——API篇
    测试SQL语句的执行时间
    ASP.NET身份验证机制membership入门——配置篇(2)
    ASP.NET身份验证机制membership入门——配置篇(1)
    ASP.NET身份验证机制membership入门——项目
    ASP.NET用户个性化设置Profile——配置1
    POJ 2762 强连通分量中存在单相连通边 【tarjan+toposort+缩点】.cpp
    POJ 2516 【最小费用最大流】.cpp
    POJ 1904 【强连通分量】.cpp
    POJ 1236 【强连通图+缩点】.cpp
  • 原文地址:https://www.cnblogs.com/ELAIRS/p/12146695.html
Copyright © 2020-2023  润新知