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);

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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