大家好,又见面了,我是你们的朋友全栈君。
最近在看银行家算法的时候发现原博文中用的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账号...