zoukankan      html  css  js  c++  java
  • BigDecimal类的概念和使用

    BigDecimal类的概念

    (1)基本概念

      由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助

    java.math.BigDecimal类型加以描述。

    (2)常用的方法

     总结:在商业开发中不允许有误差,所以我们要使用BigDecimal类实现精确运算,在java/math/BigDecimal

    注意:在执行除非运算的时候不能精确运算会报错,使用roundingmode.htle_up方法执行四舍五入可以报错

    在手册中大量的过时方法,需要慢慢查找

     

    package com.lagou.task11;
    
    import com.lagou.task10.StaticOuter;
    
    import java.math.BigDecimal;
    import java.math.RoundingMode;
    
    public class BigDecimalTest {
        public static void main(String[] args) {
            //  1.构造BigDecimal类型的两个对象
            BigDecimal bd1 = new BigDecimal("5.2");
            BigDecimal bd2 = new BigDecimal("1.3");
            //  2.使用构造完毕的对象实现加减乘除运算
            System.out.println("实现加法运算"+bd1.add(bd2));  // 6.5
            System.out.println("实现减法运算"+bd1.subtract(bd2)); //  3.9
            System.out.println("实现乘法运算"+bd1.multiply(bd2)); //  6.76
            System.out.println("实现除法运算"+bd1.divide(bd2));   //  4
    
            System.out.println("-------------------------------------------------");
            //  3.实现精确运算
            System.out.println(0.1+0.2);
            BigDecimal bd3 = new BigDecimal("0.1");
            BigDecimal bd4 = new BigDecimal("0.2");
            System.out.println("实现精确运算的结果是:" + bd3.add(bd4));
    
            System.out.println("----------------------------------------------------");
            //  4.注意事项
            BigDecimal bd5 = new BigDecimal("2");
            BigDecimal bd6 = new BigDecimal("0.3");
            //  System.out.println("除法运算的结果是:" + bd5.divide(bd6));  ArithmeticException 除不尽发生的算数异常
            System.out.println("除法运算的结果是:" + bd5.divide(bd6,RoundingMode.HALF_UP));
    
        }
    }
  • 相关阅读:
    JSON和JSONP
    微信问题汇总
    Linux 技巧:让进程在后台可靠运行的几种方法
    redis笔记
    php安装
    数据库分享一: MySQL的Innodb缓存相关优化
    nginx是以多进程的方式来工作的
    运行和控制Nginx
    nginx安装
    Redis监控技巧总结
  • 原文地址:https://www.cnblogs.com/xujiaqi/p/13818133.html
Copyright © 2011-2022 走看看