gjq1126-web

文章出处: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;

 

分类:

技术点:

相关文章:

  • 2022-02-20
  • 2021-12-10
  • 2022-02-04
  • 2022-02-09
  • 2021-11-28
  • 2022-01-27
  • 2022-12-23
  • 2022-02-10
猜你喜欢
  • 2021-12-09
  • 2021-11-17
  • 2021-12-30
  • 2021-03-26
相关资源
相似解决方案