package com.miaomiao;
import java.math.BigDecimal;
public class Test01 {
public static void main(String[] args) {
BigDecimal sum = new BigDecimal(0);
double d1 = 1.23445555;
double d2 = 2.23445555;
sum = sum.add(BigDecimal.valueOf(d1));
// System.out.println(sum);
System.out.println(BigDecimal.valueOf(d1).compareTo(BigDecimal.valueOf(d1)));
}
}
Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算.
其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类.
BigDecimal类创建的是对象,不能使用传统的+、-、*、/等算术运算符直接对其进行数学运算,而必须调用其对应的方法.方法的参数也必须是BigDecimal类型的对象.
String 构造方法是完全可预知的: 写入 new BigDecimal("0.1") 将创建一个 BigDecimal,它正好等于预期的0.1; 因此,通常建议优先使用 String 构造方法;
静态方法 valueOf(double val) 内部实现,仍是将 double 类型转为 String 类型; 这通常是将 double(或float)转化为 BigDecimal 的首选方法;