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