我有麻烦(我怀疑是)一个舍入误差。
我有一个字符串, 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);
那么,如何避免舍入误差? (有,我可以解决它的方法,但如果它是可以做到的话,我想知道如何解决这个问题)
谢谢。