zoukankan      html  css  js  c++  java
  • Java中BigDecimal类

    由于在运算的时候,float类型和double很容易丢失精度,演示案例,所以,
    为了能精确地表示、计算浮点数,Java提供了BIgDecimal

    BigDecimal类的概述
    不可变的、任意精度的有符号十进制数。
    构造方法
    public BigDecimal(String val)

    看程序写结果:结果和我们想的有点不一样,这是因为float类型的数据储存和整数不一样导致的。他们大部分的时候,都是带有有效数字位。


    演示案例:
    System.out.println(0.09+0.01);//0.099999999999
    System.out.println(1.0-0.32);//0.679999999999
    System.out.println(1.015*100);//101.4999999999
    System.out.println(1.301/100);//0.0130099999999

    System.out.println(1.0-0.12);//0.88
    因为这个减法正好得到了一个整数


    /**BigDecimal的加减乘除法的使用*/
    构造方法:
    public BigDecimal(String val)

    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):商,几位小数,如何舍去

    public class BigDecimalDemo {
    public static void main(String[] args){
    //public BigDecimal add(BigDecimal augend):加
    BigDecimal bd1 = new BigDecimal("0.09");
    BigDecimal bd2 = new BigDecimal("0.01");
    System.out.println("add:"+bd1.add(bd2));//add:0.10
    System.out.println("----------------------");

    //public BigDecimal subtract(BigDecimal subtrahend):减
    BigDecimal bd3 = new BigDecimal("1.0");
    BigDecimal bd4 = new BigDecimal("0.32");
    System.out.println("subtract:"+bd3.subtract(bd4));//subtract:0.68

    //public BigDecimal multiply(BigDecimal multiplicand):乘
    BigDecimal bd5 = new BigDecimal("1.015");
    BigDecimal bd6 = new BigDecimal("100");
    System.out.println("multiply:"+bd5.multiply(bd6));//multiply:101.500

    //public BigDecimal divide(BigDecimal divisor):除
    BigDecimal bd7 = new BigDecimal("1.301");
    BigDecimal bd8 = new BigDecimal("100");
    System.out.println("divide:"+bd7.divide(bd8));//divide:0.01301

    //public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
    BigDecimal bd7 = new BigDecimal("1.301");
    BigDecimal bd8 = new BigDecimal("100");
    System.out.println("divide:"+bd7.divide(bd8,8,BigDecimal.ROUND_HALF_UP));//divide:0.01301000

    }
    }

  • 相关阅读:
    后台性能测试不可不知的二三事
    linux下操作mysql
    loadrunner scripts
    反射
    java 读取json
    java 多线程
    python_day11
    python爬虫
    python_day10
    python_day9
  • 原文地址:https://www.cnblogs.com/lszbk/p/12318470.html
Copyright © 2011-2022 走看看