gpt4 book ai didi

java - 如何让 bean shell 作为数学解析器运行?

转载 作者:行者123 更新时间:2023-12-01 19:11:08 25 4
gpt4 key购买 nike

我在这样的 for 循环中使用 Bean Shell 解释器

    for(int i = 0; i <functionSize; i++){
interpreter.set("x", i);
yvalues[i] = (Integer) interpreter.eval(functionString);
}

我遇到的问题是,当我执行函数 2^x 时,我得到了非常奇怪的输出。前几个 y 值的列表如下:2, 3, 0 , 1, 6, 7, 4, 5, 10 , 11, 8 , 9 ...

有人知道如何让bean shell解释器正确评估权力吗?

编辑:我想使用 bean shell 解释器来代替编写数学解析器。有谁知道如何让 bean shell 来评估 x 函数的幂?

最佳答案

表达式2^x表示按位异或,而不是求幂。使用 Math.pow(2,x) 如果您愿意,但要意识到它对 double 而不是整数进行操作,因此会给您一个浮点答案,当您尝试将结果转换为整数时,该答案可能会导致异常。

编辑:还有BigInteger.pow() ,它返回一个 BigInteger。

或者,如果您需要 2 的幂,但不需要任何其他基数,请使用左移表达式:1 << x x 介于 0 到 31 之间。

关于java - 如何让 bean shell 作为数学解析器运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379574/

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