BigDecimal 用法

zygweb 2020-08-05 11:55:39
public static void main(String[] args) {

//########### BigDecimal 用法
// 加法:add
// 减法:subtract
// 乘法:multiply
// 除法:divide
BigDecimal num= new BigDecimal("0.00");//始终会保留2位小数
BigDecimal num1= new BigDecimal(0);
// BigDecimal num2= new BigDecimal("null"); //报错
// BigDecimal num4= new BigDecimal(""); //报错
BigDecimal num90=num.add(new BigDecimal(4.22));//会有超级多小数位 4.21999999999999975131004248396493494510650634765625
BigDecimal num91=num.add(new BigDecimal("4.22"));//0 + 4 = 4.22
BigDecimal num92=num1.add(new BigDecimal(4.22));//会有超级多小数位
BigDecimal num93=num1.add(new BigDecimal("4.22"));//0 + 4 = 4.22
BigDecimal num94=new BigDecimal(-4.22);//50位小数
BigDecimal num95=num1.add(new BigDecimal("-4.22"));//-4.22

//比较 compareTo 结论 前边大 =1、后边大=-1 相等=0
if(num95.compareTo(num91)==0)//-1==0
if(num91.compareTo(num95)==0)//1==0
if(num91.compareTo(num90)==0)//1==0
if(num94.compareTo(BigDecimal.ZERO)==0)//-1==0
if(num95.compareTo(BigDecimal.ZERO)==0)//-1==0
if(num91.compareTo(BigDecimal.ZERO)==0)//1==0
if(num90.compareTo(BigDecimal.ZERO)==0)//1==0
if(num1.compareTo(BigDecimal.ZERO)==0.00)//true
if(num1.compareTo(BigDecimal.ZERO)==0)//true
if(num.compareTo(BigDecimal.ZERO)==0.00)//true
if(num.compareTo(BigDecimal.ZERO)==0){//true
System.out.print("等于0");
}else {
System.out.print("不等于0");
}

}
...全文
75 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
你是否因为JS端的小数计算的精度不足而发愁过呢 其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。 使用例