黑马程序员-------小数运算之BigDecimal

来源:互联网 发布:淘宝怎么搜爱情动作片 编辑:程序博客网 时间:2024/05/01 15:06

------- android培训java培训、期待与您交流! ----------

当我们对浮点数进行运算时,不要使用基本数据类型:float和double。因为很容易会产生精度丢失的问题:


                 System.out.println(0.09 + 0.01);                System.out.println(1.0 - 0.32);                System.out.println(1.015 * 100);                System.out.println(1.301 / 100);


        以上运算都会丢失精度


         对于浮点运算,要使用BigDecimal类。
         推荐使用的构造方法:
         public BigDecimal(String val)
   成员方法:
        
<span style="white-space:pre"></span>public BigDecimal add(BigDecimal augend) //加        public BigDecimal subtract(BigDecimal subtrahend) //减        public BigDecimal multiply(BigDecimal multiplicand) //乘        public BigDecimal divide(BigDecimal divisor) //除(推荐)public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode) //除法。可以指定精度,以及舍入方式;        参数:        divisor - 此 BigDecimal 要除以的值。        scale - 要返回的 BigDecimal 商的标度。        roundingMode - 要应用的舍入模式。


 <span style="white-space:pre"></span>BigDecimal big1 = new BigDecimal("0.00009");                BigDecimal big2 = new BigDecimal("0.01");                                //加                BigDecimal bigResult = big1.add(big2);                System.out.println("加法:" + bigResult);                //减                bigResult = big1.subtract(big2);                System.out.println("减法:" + bigResult);                //乘法:                bigResult = big1.multiply(big2);                System.out.println("乘法:" + bigResult);                //除法:                bigResult = big1.divide(big2);                System.out.println("除法:" + bigResult);                                //除法:要求:取小数点后两位,并且四舍五入                bigResult = big1.divide(big2,2,RoundingMode.HALF_UP);                System.out.println("保留2位小数,并四舍五入:" + bigResult);


0 0
原创粉丝点击