double转BigDecimal精度丢失[通俗易懂]

double转BigDecimal精度丢失[通俗易懂]很多人在double或float转BigDecimal时习惯使用BigDecimal的构造方法newBigDecimal(33.33),此种写法会存在精度丢失问题,下面就具体实例带大家体会:一、使用//使用BigDecimal的构造方法doubled=33.33;BigDecimalbigDecimal=newBigDecimal(d);System.out.println(bigDecimal);…

大家好,又见面了,我是你们的朋友全栈君。

很多人在double或float转BigDecimal时习惯使用BigDecimal的构造方法new BigDecimal(33.33),此种写法会存在精度丢失问题,下面就具体实例带大家体会:

一、使用BigDecimal的构造方法

// 使用BigDecimal的构造方法
double d = 33.33;
BigDecimal bigDecimal = new BigDecimal(d);
System.out.println(bigDecimal);

在这里插入图片描述
结果:33.33精度已经丢失

做减法后:

double d = 33.33;
BigDecimal bigDecimal = new BigDecimal(d);
System.out.println(bigDecimal);
// 做减法(减去33.33)
BigDecimal subtract = bigDecimal.subtract(new BigDecimal(33.33));
System.out.println(subtract);

在这里插入图片描述
结果:33.33-33.33在精度丢失的情况下做减法,结果不等于0

二、使用BigDecimal.valueOf()

// 使用BigDecimal.valueOf()
double d = 33.33;
BigDecimal bigDecimal = BigDecimal.valueOf(d);
System.out.println(d);
BigDecimal subtract = bigDecimal.subtract(BigDecimal.valueOf(33.33));
System.out.println(subtract);

在这里插入图片描述

结果:精度没有丢失,计算正确

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136048.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ZOJ1002 Fire Net(递归版)

    ZOJ1002 Fire Net(递归版)

    2022年3月12日
    44
  • Eclipse卸载插件「建议收藏」

    Eclipse卸载插件###本人Eclipse版本为:EclipseMars1.选择:Help->InstallNewSoftware,如下图:2.点击whatisalreadyinstalled?如下图:3.点击已经安装的插件,然后选择uninstall就可以了。转载于:https://www.cnblogs.com/cyttina/…

    2022年4月7日
    37
  • Python爬虫必备技能,使用 动态代理ip 爬取 Youtube游戏模块主页 示例,不翻墙无版权

    Python爬虫必备技能,使用 动态代理ip 爬取 Youtube游戏模块主页 示例,不翻墙无版权动态ip相信大家肯定都听说过,或者已经使用过。使用动态ip有很多好处,比如保护你的网络免受外部攻击、屏蔽你的IP地址等。那本篇文章就来研究一下这个动态ip,对这方面不了解的小伙伴正好可以一起学习一下。

    2022年6月3日
    36
  • 在MT4上使用双线MACD指标源码

    在MT4上使用双线MACD指标源码MACD指标是股票交易中经典的一款技术分析指标,该指标由两条曲线和柱线组成。基本用法:MACD金叉:DIFF由下向上突破DEA,为买入信号。MACD死叉:DIFF由上向下突破DEA,为卖出信号。MACD绿转红:MACD值由负变正,市场由空头转为多头。MACD红转绿:MACD值正转负,市场多头转空头。DIFF与DEA均为正值,即都在零轴线以上时,大势属于多头市场,DIFF向上突破DEA,可以做买入信号。DIFF与DEA均为负值,即都在零轴线以下时,大势属于空头市场,DIFF向下跌破DEA,可做卖出信号。DE

    2022年5月7日
    100
  • 不是单组分组函数

    不是单组分组函数问题:一:SELECT tablespace_name, SUM(bytes) freeFROM dba_free_space不是单组分组函数原因: 1、如果程序中使用了分组函数,则有两种情况可以使用:程序中存在group by,并指定了分组条件,这样可以将分组条件一起查询出来改为:  SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spa…

    2022年6月30日
    27
  • java中创建数组的三种方法

    java中创建数组的三种方法publicstaticvoidmain(String[]args){ //创建数组的第一种方法 int[]arr=newint[6]; intintValue=arr[5]; //System.out.println(intValue); //创建数组的第二种方法 int[]x={1,2,3,4}; //System.out.println(x[1]); //…

    2022年6月7日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号