我遇到了(我怀疑是)舍入错误的问题。
我有一根绳子,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);
那么,如何避免舍入误差呢? (有很多方法可以解决这个问题,但如果可以的话,我想知道如何解决这个问题)
Thanks.
没必要把它分开Double.parseDouble
可以很好地处理这些类型的数字。
double number = Double.parseDouble("0.686357E-01");
看?有用!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)