我遇到了(我怀疑是)舍入错误。
我有一个字符串,0.686357E-01我正尝试将其转换为双精度型。我已经可以使用Pattern.split()函数将其拆分,并且可以很好地捕获基数和指数值。但是,一旦我尝试将它们适当地相乘,就会得到以下结果:0.06863570000000001。
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);
那么,如何避免舍入错误?(我有多种方法可以解决此问题,但如果有可能,那么我想知道如何解决该问题)
谢谢。
您不需要拆分它,Double.parseDouble可以很好地处理这些数字。
Double.parseDouble
double number = Double.parseDouble("0.686357E-01");
看到?有用!