更精确的使用浮点数(开发实例大全)

浮点运算的典例是货币运算,在商品金额计算中,常常会涉及小数运算,如某个商品的价格是1.10元,而顾客的现金是两元整。在在计算机中所有的数字都是使用二进制进行存储的,而二进制无法精确的表示所有的小数,所以使用基本的数据类型进行小数运算时总会有一点误差。
接下来通过BigDecimal类实现精确的小数运算。
BigDecimal类用于大数据运算,下面介绍该类的运算方法:

  1. 加法:
    该方法实现两个BigDecimal 类实例对象的加法运算,并将结果作为该方法的返回值。方法的声明如下:(其中augend是与当前对象执行加法的操作数。
        public BigDecimal add(BigDecimal augend);
  1. 减法
    该方法实现两个BigDecimal 类实例对象的加法运算,并将结果作为该方法的返回值。方法的声明如下:(其中subtrahend是与当前对象执行减法的操作数。
        public BigDecimal subtract(BigDecimal subtrahend);
  1. 乘法
    该方法实现两个BigDecimal 类实例对象的加法运算,并将结果作为该方法的返回值。方法的声明如下:(其中multiplicand是与当前对象执行乘法的乘数。
        public BigDecimal multiply(BigDecimal multiplicand);
  1. 除法
    该方法实现两个BigDecimal 类实例对象的加法运算,并将结果作为该方法的返回值。方法的声明如下:(其中augend是与当前对象执行除法的除数。
        public BigDecimal divide(BigDecimal divisor);

演示过程:
创建AccumulatelyFloat 类,在该类中的主方法创建double类型的变量并输出他们运算的结果;然后用BigDecimal类的实例在完成一次相同的操作。比较他们的运算结果。

import java.math.BigDecimal;

/**
 * @author Mr.jie
 * @create 2019/11/15-18:55
 */
public class AccumulatelyFloat {
    public static void main(String[] args) {
        double money = 2;
        double price = 1.1;
        double result = money - price;
        System.out.println("double型计算结果:" + result);
        
        BigDecimal money1 = new BigDecimal("2");
        BigDecimal price1 = new BigDecimal("1.1");
        BigDecimal result1 = money1.subtract(price1);
        System.out.println("BigDecimal计算结果" + result1);
    }
}

你可能感兴趣的:(java)