gpt4 book ai didi

Java Math.pow() 舍入误差

转载 作者:行者123 更新时间:2023-11-29 09:41:40 24 4
gpt4 key购买 nike

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

我有一个字符串 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);

那么,如何避免舍入误差呢? (有一些方法可以解决这个问题,但如果可以的话,我想知道如何解决这个问题)

谢谢。

最佳答案

你不需要拆分它,Double.parseDouble 可以很好地处理这些类型的数字。

double number = Double.parseDouble("0.686357E-01");

See? It works!

关于Java Math.pow() 舍入误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com