所以我正在开发一个大型Java项目,在其中我有一部分用户提交的方程式,包括数学和If / else之类的东西。我一直在使用带有javascript的scriptengine来获得结果。我遇到了四舍五入的浮点错误问题。例如,math.pow(1000,1 / 3)返回9.999999999999998而不是10.(在任何人说出之前,我都知道立方根函数,这只是一个例子)。
基本上我需要一个能够提供正确数字的解决方案。这是否意味着除了javascript之外的其他脚本引擎,或者告诉脚本将所有数字四舍五入到x小数位,我不知道。我不需要15位小数的精度,所以我可以做出这种交易,但我不知道在整个方程中实现这一点的实用方法。来自等式的问题可能每次都不同。我也考虑在java本身做一些像分流码算法这样的东西,但它有完全相同的问题。基本上我需要传递代码1000 ^ 1/3并且知道我得到10。