我是靠谱客的博主 懦弱烧鹅,最近开发中收集的这篇文章主要介绍Java加减乘数多位小数问题,使用BigDecimal解决目录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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解决目录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部