关于BigDecimal

来源:互联网 发布:醉仙武神翼进阶数据 编辑:程序博客网 时间:2024/05/17 05:11
1.int 转化成BigDecimal 类型

     int num=88.4;

     BigDecimal test = new BigDecimal(num);

2. BigDecimal 进行对比

    通过compareTo方法进行比较,返回结果是int类型,-1表示小于,0是等于,1是大于。

3. BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。 

可以处理任意长度的浮点数运算。 

BigDecimal add(BigDecimal val) //BigDecimal 加法 

BigDecimal subtract (BigDecimal val) //BigDecimal 减法 

BigDecimal multiply (BigDecimal val)  //BigDecimal 乘法 

BigDecimal divide (BigDecimal val,RoundingMode mode)  除法 

4.注意

(1)商业计算使用BigDecimal。

   (2)尽量使用参数类型为String的构造函数。

   (3) BigDecimal都是不可变的(immutable)的,在进行每一步运算时,都会产生一个新的对象,所以在做加减乘除运算时千万要保存操作后的值。

   (4)我们往往容易忽略JDK底层的一些实现细节,导致出现错误,需要多加注意。


0 0
原创粉丝点击