java double精度丢失的解决方案
作者:
明小五 | 来源:发表于
2020-09-16 12:55 被阅读0次//方法1:用NumberFormat类来格式化数字,觉得这种算数运算比较直观
NumberFormat numberFormat=NumberFormat.getNumberInstance();
double a = 11540.0;
double b = 0.35;
double result = a * b;
System.out.println(result); //4038.9999999999995
System.out.println( numberFormat.format(result)); //4,039返回是数字是string类型,有,分割
System.out.println(Double.valueOf(numberFormat.format(result).replaceAll(",", "")));//4039.0
//方法2:用BigDecimal来处理,multiply是表示乘的方法,但看起来很不直观,习惯了算数运算,但也很多人用这种方法
BigDecimal aa = new BigDecimal(String.valueOf(a));
BigDecimal bb = new BigDecimal(String.valueOf(b));
result = aa.multiply(bb).doubleValue();
System.out.println(result);
本文标题:java double精度丢失的解决方案
本文链接:https://www.haomeiwen.com/subject/sgicyktx.html
网友评论