Java Math.pow() 舍入误差

2023-12-01

我遇到了(我怀疑是)舍入错误的问题。

我有一根绳子,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(使用前将#替换为@)

Java Math.pow() 舍入误差 的相关文章

随机推荐