我正在使用 Java 中的 BeanShell 解释器来解决字符串计算。问题是我自己做了一些解释器无法完成的解析,并将部分结果存储在 BigInteger 中。然后我把所有东西拼凑起来,给它解释器来解决,但是我收到的数字BigInteger.toPlainString()
太大了,interpreter.eval(...)
因为我收到了以下错误消息:
Parse error at line 1, column 10 : Error or number too big for integer type: 2432902008176640000
Parse error at line 1, column 10 : Error or number too big for integer type: 2432902008176640000
计算字符串的构造如下:
BigDecimal x = new BigDecimal(/*very big number*/);
BigDecimal y = new BigDecimal(/*very big number*/);
String s = x.toPlainString() + "+" + y.toPlainString();
Interpreter i = new Interpreter();
i.eval("result = " + s);
s = i.get("result").toString();
我知道在这种情况下,我可以通过提供的 BigDecimal 函数简单地添加数字,但在我的情况下,计算要复杂得多!是否有可能的解决方法,所以我也可以使用具有大量数字的 beanshell 评估器?