我遇到了(我怀疑是)舍入错误的问题。
我有一个字符串,0.686357E-01
我正在尝试将其转换为双精度。我已经能够使用该Pattern.split()
函数将其拆分,并且可以很好地捕获基值和指数值。但是,一旦我尝试将它们适当地相乘,我就会得到以下结果:0.06863570000000001
.
这是我的相关代码:
pattern = Pattern.compile("E\\+?");
String[] number = pattern.split(string);
double base = Double.parseDouble(number[0]);
int exponent = Integer.parseInt(number[1]);
number= base*Math.pow(10, exponent);
那么,如何避免舍入误差呢?(有一些方法可以解决它,但如果有可能,那么我想知道如何解决这个问题)
谢谢。