JAVA引用对象BigDecimal
常用方法
add(BigDecimal) | BigDecimal对象中的值相加,返回BigDecimal对象 |
subtract(BigDecimal) | BigDecimal对象中的值相减,返回BigDecimal对象 |
multiply(BigDecimal) | BigDecimal对象中的值相乘,返回BigDecimal对象 |
divide(BigDecimal) | BigDecimal对象中的值相除,返回BigDecimal对象 |
toString() | 将BigDecimal对象中的值转换成字符串 |
doubleValue() | 将BigDecimal对象中的值转换成双精度数 |
floatValue() | 将BigDecimal对象中的值转换成单精度数 |
longValue() | 将BigDecimal对象中的值转换成长整数 |
intValue() | 将BigDecimal对象中的值转换成整数 |
BigDecimal创建对象有两种方法
BigDecimal b1 = new BigDecimal("1.34");//1.34
BigDecimal b2 = BigDecimal.valueOf(1.34);//1.34
用构造方法创建的对象可以规定参数的类型比如:
BigDecimal(int),创建一个具有参数所指定整数值的对象
BigDecimal(double),创建一个具有参数所指定双精度值的对象。(最好使用字符串定义参数,因为long型和double型,float型都可能会丢失精度),解决这种问题可以调用引用类型的toString方法,比如:
double value=213.1246548911;
BigDecimal b1 = new BigDecimal(Double.toString(value1));
BigDecimal对象的比较是通过compareTo方法。
根据此方法,值相等但具有不同标度的两个BigDecimal对象(如,8 和 8.0)被认为是相等的。
当此 BigDecimal 在数字上小于、等于或大于被比较对象时,返回 -1、0 或 1。
BigDecimal b1=BigDecimal.valueOf(8);
BigDecimal b2=BigDecimal.valueOf(8.0);
BigDecimal b3=BigDecimal.valueOf(9);
int i = b1.compareTo(b2);//0
int i1 = b1.compareTo(b3);//-1
int i2 = b3.compareTo(b2);//1
同时也要注意,BigDecimal对象的运算是重新new了一个新的BigDecimal对象,而不能像int、double、long、float一样进行 i+=的类似操作