参考:https://blog.csdn.net/cen_s/article/details/76472834
0先上一个实例
import java.math.*;
public class BigDecimalDemo
{
public static void main(String[] args)
{
// create a BigDecimal object
BigDecimal bg;
// create a Double object
Double d;
bg=new BigDecimal("1234");//1234
// assign the converted value of bg to d
d=bg.doubleValue();//1234.0
String str = "Double value of " + bg + " is " + d;
// print d value
System.out.println( str );
}
}
//让我们编译和运行上面的程序,这将产生以下结果:
//Double value of 1234 is 1234.0
1创建Bigdecimal的方法有两种
BigDecimal b1 = new BigDecimal("1.34");//1.34
BigDecimal b2 = BigDecimal.valueOf(1.34);//1.34
2BigDecimal的运算都没有对原值进行操作,而是返回一个新的BigDecimal对象,这点可能有些小伙伴会搞错要注意一下。
public BigDecimal add(BigDecimal value);//加法
public BigDecimal subtract(BigDecimal value);//减法
public BigDecimal multiply(BigDecimal value);//乘法
public BigDecimal divide(BigDecimal value);//除法
如
BigDecimal b1 =new BigDecimal("1.34");
System.out.println("b1: " + b1);
BigDecimal b2 =new BigDecimal("2.34");
b1.add(b2);
System.out.println("b1: " + b1);//b1并没有变
3BigDecimal的比较用的是BigDecimal的compareTo方法,将此 BigDecimal 与指定的 BigDecimal 比较。
根据此方法,值相等但具有不同标度的两个BigDecimal对象(如,2.0 和 2.00)被认为是相等的。
当此 BigDecimal 在数字上小于、等于或大于被比较对象时,返回 -1、0 或 1。
BigDecimal one = BigDecimal.valueOf(1);
BigDecimal two = BigDecimal.valueOf(2);
BigDecimal three = one.add(two);
int i1 = one.compareTo(two);//-1
int i2 = two.compareTo(two);//0
int i3 = three.compareTo(two);//1