zoukankan      html  css  js  c++  java
  • BigDecimal简单说

     1) 浮点数的舍弃规则; 假设小数点后保留两位

                 RoundingMode.CEILING:向正无穷大的方向舍入;  1.245 → 1.25   -1.245 → -1.24

                 RoundingMode.DOWN:去掉保留位数后面的部分;     1.245 → 1.24     -1.245 → -1.24

                 RoundingMode.FLOOR:取左边最近的正数。1.245 → 1.24   -1.244 → -1.25

                 RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数        1.245 → -1.25          1.246 → 1.25      -1.245 → -1.24             -1.246 → -1.25

                RoundingMode.HALF_UP:四舍五入,负数原理同上 

                RoundingMode.HALF_EVEN:这个比较绕,若舍入位左边是奇数则四舍五入,若是偶数则五舍六入; 1.245 → 1.24    1.255 → 1.26

                

         2) BigDecimal用法

              java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法;

             public BigDecimal add(BigDecimal value);//加法
             public BigDecimal subtract(BigDecimal value);//减法 
             public BigDecimal multiply(BigDecimal value);//乘法
             public BigDecimal divide(BigDecimal value);//除法

             BigDecimal的运算都没有对原值进行操作,而是返回一个新的BigDecimal对象,这点可能有些小伙伴会搞错要注意一下。

           

          BigDecimal的比较用的是BigDecimal的compareTo方法,将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个BigDecimal对象(如,2.0 和 2.00)被认为是相等的。当此 BigDecimal 在数字上小于、等于或大于被比较对象时,返回 -1、0 或 1。

          

  • 相关阅读:
    poj1673EXOCENTER OF A TRIANGLE
    poj1474Video Surveillance(半平面交)
    poj1584A Round Peg in a Ground Hole
    poj1696Space Ant(逆时针螺旋形)
    点分治(树分治)
    LCT(link cut tree) 动态树
    树链剖分
    Codeforces Round #475 (Div. 2)
    openCV学习——一、Mat类
    openCV学习——一、图像读取、显示、输出
  • 原文地址:https://www.cnblogs.com/leavescy/p/9670609.html
Copyright © 2011-2022 走看看