/*
* 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)); } }