大家好,又见面了,我是你们的朋友全栈君。
最近在看银行家算法的时候发现原博文中用的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.cn/136209.html原文链接:https://javaforall.cn
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有