Java使用GroovyShell计算自定义表达式
Groovy Shell,又名。groovysh是一个命令行应用程序,可轻松访问以评估Groovy表达式,定义类并运行简单的实验。现在已经支持在java里面使用
maven:
<!--groovy自定义函数--> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.7</version> </dependency>
代码测试:
/** * 自定义表达式 */ @Test public void test3() { Binding binding = new Binding(); binding.setVariable("F", 2.5); binding.setVariable("T", 1); binding.setVariable("A", 100); binding.setVariable("P", 100); binding.setVariable("language", "Groovy"); GroovyShell shell = new GroovyShell(binding); Object F1 = shell.evaluate("P1=(1+0.1 * (F/100) * T)*P0; return P1 "); Object F2 = shell.evaluate("P1=P*(0.055*0.20+1.0011)+A; return P1 "); Object F3 = shell.evaluate("P1=P*(((F*0.20)+1.0011)+A)+100; return P1 "); System.out.println(F1); System.out.println(F2); BigDecimal bg = new BigDecimal((Double) F3); System.out.println(bg.setScale(2, RoundingMode.HALF_DOWN).doubleValue()); }
测试结果: