最近写自动化测试用例设计很多公式,感觉自己写计算公式也不是不可以,就是比较麻烦,还不一定正确,开始写了一点愚蠢的方法对付用着,突然想到肯定有相关的包已经解决了类似的方法,一搜,果然。
-
引入包
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-jexl3</artifactId> <version>3.1</version> </dependency> -
代码
String expressionString = String.format( "%f*%d/1000 + %s + 0.01", f,d,s); JexlEngine jexlEngine = new JexlBuilder().create(); JexlExpression jexlExpression = jexlEngine.createExpression(expressionString); Double.valueOf(jexlExpression.evaluate(null).toString());
完美