day17_toString()方法源码分析

来源:互联网 发布:mac ps导入ttf 编辑:程序博客网 时间:2024/06/05 03:39
/* * 由于在运算时,float和double都很容易丢失精度,即以下的演示案例。 * 所以为了能精确的计算和表示浮点数,java提供了BigDecimal类。 * BigDecimal类:不可变的,任意精度的有符号十进制数,可以解决数据丢失的问题。 */public class BigDecimalDemo {    public static void main(String[] args) {        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);    }}
/* * 构造方法:public BigDecimal(String val) *   *  public BigDecimal add(BigDecimal augend) *  public BigDecimal substract(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) {        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);        System.out.println("==============");        BigDecimal bd1 = new BigDecimal("0.09");        BigDecimal bd2 = new BigDecimal("0.01");        System.out.println("add:" + bd1.add(bd2));        BigDecimal bd3 = new BigDecimal("1.0");        BigDecimal bd4 = new BigDecimal("0.32");        System.out.println("substract:" + bd3.subtract(bd4));        BigDecimal bd5 = new BigDecimal("1.015");        BigDecimal bd6 = new BigDecimal("100");        System.out.println("multiply:" + bd5.multiply(bd6));        BigDecimal bd7 = new BigDecimal("1.301");        BigDecimal bd8 = new BigDecimal("100");        System.out.println("divide:" + bd7.divide(bd8));        //BigDecimal.ROUND_HALF_UP指采用四舍五入的方式进行取舍        System.out.println("divide:" + bd7.divide(bd8,3,BigDecimal.ROUND_HALF_UP));        System.out.println("divide:" + bd7.divide(bd8,8,BigDecimal.ROUND_HALF_UP));    }}