我遇到了(我怀疑的)舍入错误.
我有一个字符串,0.686357E-01我正在尝试将其转换为double.我已经能够使用该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);
Run Code Online (Sandbox Code Playgroud)
那么,我该如何避免舍入误差呢?(有很多方法可以解决它,但是如果可以的话,我想知道如何解决这个问题)
谢谢.
你不需要拆分它,Double.parseDouble可以处理那些类型的数字就好了.
double number = Double.parseDouble("0.686357E-01");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1246 次 |
| 最近记录: |