bigdecimal 类型的变量怎么相互加减乘除

文章出处:https://zhidao.baidu.com/question/629036057904993964.html

import java.math.BigDecimal;
 
public class Test {
    public static void main(String[] args) {
        // BigDecimal是处理baidouble精度问题的对象du
        BigDecimal b1 = new BigDecimal("10");
        BigDecimal b2 new BigDecimal("10");
        // 结果zhi
        BigDecimal result = null;
        // 加
        result = b1.add(b2);
        System.out.println(result.doubleValue());
        // 减
        result = b1.subtract(b2);
        System.out.println(result.doubleValue());
        // 乘
        result = b1.multiply(b2);
        System.out.println(result.doubleValue());
        // 除
        result = b1.divide(b2);
        System.out.println(result.doubleValue());
    }
}

 

java 中 BigDecimal 怎么与 0 比较:

//调用BigDecimal中的compareTo方法bai, 如:
int i = bigDecimal.compareTo(new BigDecimal(0));
i=0:表示dubigDecimal的值=0
i>0:表示bigDecimal的值与zhi>0
i<0:表示bigDecimal的值与<0
int r=big_decimal.compareTo(BigDecimal.Zero); //和0,Zero比较
if(r==0) //等于baidu
if(r==1) //大于
if(r==-1) //小于
if(big_decimal.equals(BigDecimal.Zero)) //是否等于0

创建BigDecimal对象主要有两种。

BigDecimal b1 = new BigDecimal("1.34");//1.34
BigDecimal b2 = BigDecimal.valueOf(1.34);//1.34

其中b1也可以写成new BigDecimal(Double.toString(1.34)),可以直接new BigDecimal(1.34)吗,也是可以的,只是会出现上述的精度问题。

BigDecimal one1 = new BigDecimal(1.34);//1.3400000000000000799360577730112709105014801025390625
BigDecimal two1 = new BigDecimal("1.34");//1.34

除了这两种外,特殊的像0、1、10可以这样写。

BigDecimal zero = BigDecimal.ZERO;
BigDecimal one = BigDecimal.ONE;
BigDecimal ten = BigDecimal.TEN;

 

posted @ 2020-06-12 09:23  An-Optimistic-Person  阅读(302)  评论(0编辑  收藏  举报