经典面试题目:如何精准处理小数

BigDecimal 是Java中的一个类,用于进行高精度的数值计算。它提供了一种精准表示和操作任意精度的十进制的方式,避免了使用浮点数在精度和舍入误差上可能存在的问题。

示例:

publice class BigDecimalExample{
    public static void main(String []args){
        double num1 = 0.1;
        double num2 = 0.2;
        double sum1 = num1 + num2;
        System.out.println("sum using double:" + sum1);// 输出结果  0.30000000000000000

        
        BigDecimal decimal1 = new BigDecimal("0.1");
        BigDecimal decimal2 = new BigDecimal("0.2");
        BigDecimal sum2 = decimal1.add(decimal2);
        System.out.println("Sum using BigDecimal:" + sum2);// 输出结果 0.3
    }
}

在上述示例中,使用double类型进行0.1和0.2的相加,由于浮点数的精度限制,计算结果会产生舍入误差,得到一个略微不精准的结果,而使用BigDecimal进行相加时,精确的标识了0.1和0.2并得到了准确的计算结果

在需要精确计算,特别是涉及货币,财务或其他小数点的场景时,使用BigDecimal更可靠,避免浮点数带来的舍入误差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值