BigDecimal类(常用的方法)
BigDecimal有自身的构造器,具体构造方法参见API
① abs方法 BigDecimal abs(); 一般适用于整数的取绝对值
public static void main(String[] args) {
BigDecimal B1 = new BigDecimal(-2);
System.out.println(B1.abs());
}
结果:2
② add方法 常用下面的这种形式: (常用于两个整数的求值,当b1,b2不为整数的时候,求和精度有误,当求和加起来为整数时,精度无误。)
public static void main(String[] args) {
BigDecimal b1 = new BigDecimal(-2);
BigDecimal b2 = new BigDecimal(6);
System.out.println(b1.add(b2));
}
结果:4
③ divide方法 求商 返回值为BigDecimal。注意:如果无法表示准确的商(因为它具有非终止的十进制扩展),则抛出ArithmeticException 。
public static void main(String[] args) {
BigDecimal b1 = new BigDecimal(8);
BigDecimal b2 = new BigDecimal(4);
System.out.println(b1.divide(b2));
}
结果:2
④ 除了equals方法其他方法均无参数,返回值即是转换的值。只有int 和 long 转换存在丢失数据信息的可能,则有一个检查的方法在转换原基础上增加了Exact。
double doubleValue() 将 BigDecimal转换为 double 。
boolean equals(Object x) 将此 BigDecimal与指定的 Object进行相等性比较。
float floatValue() 将 BigDecimal转换为 float 。
int hashCode() 返回此 BigDecimal的哈希码。
int intValue() 将 BigDecimal成 int 。
int intValueExact() 将 BigDecimal转换为 int ,检查是否丢失了信息。
long longValue() 将 BigDecimal转换为 long 。
long longValueExact() 将此 BigDecimal转换为 long ,检查是否丢失了信息。
⑤ max,min有一个BigDecimal类型参数,返回值类型BigDecimal。返回最大或最小值。
⑥ valueOf方法,将double或者long转换为BigDecimal类型。
注意:当我们使用构造方法传入的是字符串数字的时候,小数丢失精度问题则没有了