double 转 BigDecimal 失真问题

double 转 BigDecimal 失真问题最近在看银行家算法的时候发现原博文中用的BigDecimal有问题,所以总结了BigDecimal失真问题,自己也总结了几种经常用的转换方式,并且列出来,以防以后忘记,代码如下      doubledb=211288.555;       Stringstr="211288.555";       BigDecimalrw=BigDecimal.valueOf(…

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

最近在看银行家算法的时候发现原博文中用的BigDecimal 有问题,所以总结了BigDecimal 失真问题,自己也总结了几种经常用的转换方式,并且列出来,以防以后忘记,代码如下

       double db = 211288.555;
        String str = “211288.555”;
        BigDecimal rw = BigDecimal.valueOf(db);// 不失真
        BigDecimal rw2 = new BigDecimal(db);// 这种用法会失真,要小心
        BigDecimal rw3 = new BigDecimal(str);// 不失真
        BigDecimal rw4 = new BigDecimal(Double.valueOf(db));// 这种用法会失真,要小心
        System.out.println(“rw==” + rw);
        System.out.println(“rw2==” + rw2);
        System.out.println(“rw3==” + rw3);
        System.out.println(“rw4==” + rw4);

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

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

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


相关推荐

  • c++与三菱plc通信_C语言编写的代码是

    c++与三菱plc通信_C语言编写的代码是FX系列作为三菱基本款的PLC,它们之间的通讯体例别离如下:CC-LINK,N:N网络连接,并联连接。1.CC-LINK连接CC-LINK连接图如下:三菱PLC通讯与编程实例!-1.jpg(21.71KB,下载次数:0)2018-6-103:01上传对应的PLC可为FX1N、FX1NC、FX2N、FX2NC、FX3U、FX3UC,因为在使用CC-LINK通讯时要扩展CC-LINK模块,…

    2022年9月10日
  • centos7执行ip addr命令ens33没有ip地址「建议收藏」

    centos7执行ip addr命令ens33没有ip地址「建议收藏」之前使用正常的虚拟机,突然的就连接不上了。执行ipaddr命令ens33没有ip地址查了几篇相关文章解决方法,主要有四种:mac地址问题 ONBOOT问题 uuid问题 NetworkManager问题目录mac地址问题ONBOOT问题uuid问题NetworkManager问题mac地址问题(我用的VMwareWorkstationP…

    2022年7月27日
  • 深信服SCSA认证复习笔记三

    深信服SCSA认证复习笔记三深信服复习笔记三基础题目:1.最大传输单元(MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。是包或者帧的最大长度,一般以字节记。如果MTU过大,则路由器会拒绝此包,并下发通知源节点2.Telnet是常用的远程控制Web服务器的方法。这个可以判断网络是不是畅通的这一种方法,ping命名不能准确表示是不是在可以上网。3.防火墙:传统防火墙(包过滤防火墙)判断信息(五元组)工作范围(网络层,传输层)4.防火墙部署模式:路由模式透明模式虚拟网线模式混合模式旁

    2022年6月20日
  • dmesg命令「建议收藏」

    dmesg命令「建议收藏」Linuxdmesg命令 Linux命令大全Linuxdmesg命令用于显示开机信息。kernel会将开机信息存储在ringbuffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。语法dmesg[-cn][-s]参数说明:-c 显示信息后,清除ri

    2022年10月24日
  • 高德地图label换行「建议收藏」

    高德地图label换行「建议收藏」换行加一个”\n”就可以了markers[{…label:{ content:’象鼻镇岷江村第一网格\n201号’, fontSize:13.33, borderRadius:6.67, bgColor:’#2A98FF’, padding:17, textAlign:’center’, color:’#FFFFFF’ }}…

    2022年5月21日
  • java按位取反运算符_二进制按位取反

    java按位取反运算符_二进制按位取反“~”运算符在c、c++、java、c#中都有,要弄懂这个运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的。另外正数和负数的补码不一样,正数的补码,反码都是其本身,既:正数9(二进制为:1001)在内存中存储为01001,必须补上符号位(开头的0为符号位)。补码为01001反码为01001,其中前面加的0是符号位,负数的

    2022年8月14日

发表回复

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

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