加减运算_Java四则运算的那些坑-加减乘除避坑指南

本文介绍了Java中加减乘除运算中的常见问题,包括Double类型的精度问题和BigDecimal的使用注意事项。强调了在进行资金计算时避免使用Double类型,并详细阐述了BigDecimal实例化、除法、舍入和比较相等时可能出现的坑,提醒开发者关注运算的细节和精度,确保计算的准确性。
摘要由CSDN通过智能技术生成
34adf3a7ae30393d8be6d433d380f314.png

使用Java开发多年,但是被Java狂虐却从来都没变过,而且任何一个Java的小角落,都能把我虐的体无完肤,但是无奈要靠Java吃饭,还得恬着脸继续使用下去。

最近开发的项目中涉及到了大量的资金计算,资金计算对数字要求的比较严谨,作为一个粗心而又自大的Java程序员,一直没把这个当回事儿,于是又被Java吊打一遍。

下面记录一下Java中四则运算的一些需要注意的小坑,加减乘除都有坑噢,一不小心就进坑!

数学计算,免不了要想到 int long double 这种数据类型,但double自古在程序界就特立独行,表面上看像数学中学到的小数,实际上完全两码事儿。

下面开始趟坑:

Double的坑

坑1:加法坑

double d1 = 0.1;d1 += 0.1;d1 += 0.1;d1 += 0.1;d1 += 0.1;d1 += 0.1;d1 += 0.1;d1 += 0.1;d1 += 0.1; // 连着加了8次System.out.println(d1);  

0.8999999999999999

不是我们期望的0.9哦

坑2:减法坑

double d1 = 1.0;double d2 = 0.1;d1 -= d2;d1 -= d2;d1 -= d2;d1 -= d2;d1 -= d2;d1 -= d2;d1 -= d2;d1 -= d2;d1 -= d2;// 连着减了9次0.1System.out.println(d1);  

0.10000000000000014

不是我们期望的0.1哦

坑3:乘法坑

double d1 = 123213.0;d1 *= 0.35;System.out.println(d1);

43124.549999999996

不是我们期望的43124.55哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值