概述
Java加减乘数多位小数问题
- 目录
- 一、以加法为例
- 二、原因
- 三、解决办法
目录
一、以加法为例
double s1 = 0.2;
s1 += 0.1;
System.out.println(s1);
以下代码结果应为0.3,打印如下图所示
二、原因
由于我们的计算机都是二进制保存数据的,浮点型数据没有办法用二进制进行精确表示。所以CPU就将浮点型数据分成两个部分:指数+尾数,所以在存储过程中就损失了一部分精度,在计算时当然得到结果也就不准确。
三、解决办法
使用BigDecimal进行加减乘除
BigDecimal s1 = new BigDecimal("0.5");
BigDecimal s2 = new BigDecimal("0.2");
BigDecimal result = s1.add(s2);
System.out.println(result);
System.out.println(s1);
结果如下
注意点:
1、无论加减乘数都会返回一个新的BigDecimal对象
2、在进行除法不能整除的情况时,会抛算数异常,可以采用三个参数的divide方法,第一个参数为除数,第二个参数为小数点保留位数,第三个参数为舍入模式
3、在设置数字时尽量使用String类型,因为String的构造方法完全可知。
最后
以上就是懦弱烧鹅为你收集整理的Java加减乘数多位小数问题,使用BigDecimal解决目录的全部内容,希望文章能够帮你解决Java加减乘数多位小数问题,使用BigDecimal解决目录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复