- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用jeval执行一些数据计算任务,发现准确性有所损失。使用 jeval 时有什么方法可以避免准确性损失吗?我想像BigDecimal一样得到准确的结果。
public class EvalTest {
private static Evaluator eva = new Evaluator();
public static void main(String[] args) {
try {
String formula = "780.0000000-259.9999998";
String res = eva.evaluate(formula);
BigDecimal a = BigDecimal.valueOf(780.0000000);
BigDecimal b = BigDecimal.valueOf(259.9999998);
BigDecimal c = a.subtract(b);
System.out.println("a");
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果我使用jeval,公式“780.0000000-259.9999998”将得到结果“520.0000001999999”,但如果我使用BigDecimal,我可以获得精度结果“520.0000002”。
最佳答案
根据 Jeval 0.9.4 的 evaluate(String expression)
方法的 Javadoc,它说:
"The result of the evaluated. expression. Numbers are treated as doubles, so resulting numbers will contain at least one decimal place."
使用 double 时,您无法避免准确性损失。请参阅this 。 float 有这个限制。例如,您可以看到像 5.6 + 5.8
这样的简单表达式,它会产生 11.399999999999
。
关于java - 使用jeval时如何避免精度损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55140288/
我在使用 jeval 评估表达式时遇到问题包含 1.0E-4 等值或“E”后带有“-”的任何其他值的库 Evaluator mEvaluator = new Evaluator(); String r
我正在寻找一种语言,它可以很容易地为我解析数学表达式,而且还能够根据需要调用函数和引用变量。 Jeval 看起来就是我要找的东西,但不幸的是我在 C# 中工作。是否有基于 .Net 的等价于 jeva
我不知道如何在 Java 中使用 JEval 库执行这些操作 String b = "8!"; // Not working String a = "2^2
我是一名优秀的程序员,十分优秀!