我想用java计算回归模型的准确率,公式如下:
1 – ( ||实际值 - 预测值|| / ||实际值|| )
代码如下:
BigDecimal data2 = new BigDecimal("2.11");
BigDecimal data3 = data1.subtract(data2).abs();
BigDecimal data4 = data3.divide(data1.abs(), 16, RoundingMode.HALF_UP);
BigDecimal data5 = new BigDecimal("1.0");
BigDecimal data6 = data5.subtract(data4);
System.out.println(data6);
System.out.println(data6.doubleValue())
但是最后一步Bigdecimal转double,转换前后数值却不同,是丢失精度了吗?
打印输出如下:(最后一位数不同,第一行是Bigdecimal类型,第二行是double类型)
请问怎样才能不丢失精度呢?