类BigDecimal

/*
* float和double类型的数据存储和int不一样
*
* float和double类型容易丢失精度
*
* 因此使用BigDecimal
*
* BigDecimal类描述:不可变的,任意精度的有符号十进制数,可以解决精度丢失问题
* */

/*	
 * float和double类型的数据存储和int不一样
 * 
 * float和double类型容易丢失精度
 * 
 * 因此使用BigDecimal
 * 
 * BigDecimal类描述:不可变的,任意精度的有符号十进制数,可以解决精度丢失问题
 * */

public class IntegerDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		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);
*
* 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);除,参数:商,保留几位小数,如何舍取
* */

import java.math.BigDecimal;

/*	
 * 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 IntegerDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		BigDecimal bd1 = new BigDecimal("0.09");
		BigDecimal bd2 = new BigDecimal("0.01");

		System.out.println("add:" + bd1.add(bd2));
		System.out.println("subtract:" + bd1.subtract(bd2));
		System.out.println("multiply:" + bd1.multiply(bd2));
		System.out.println("divide:" + bd1.divide(bd2));

		System.out.println("divide:" + bd1.divide(bd2, 3, BigDecimal.ROUND_HALF_UP));
	}
}
原文地址:https://www.cnblogs.com/denggelin/p/6285904.html