java - 想要一个支持基于 BigDecimal 的自定义公式计算的 Maven 依赖项
问题描述
我想实现以下代码示例,以便我可以将公式存储到数据库中并重用它:
Function fun = new Function("(${x}+${y})/${z}");
Argument x = new Argument("x", BigDecimal.ValueOf("1.1"));
Argument y = new Argument("y", BigDecimal.ValueOf("1.1"));
Argument z = new Argument("y", BigDecimal.ValueOf("1.1"));
BigDecimal result = fun.calculate(x,y,z);
我已经尝试过其他框架,例如commons-jexl
and mathparser
,但没有一个支持BigDecimal
.
解决方案
<dependency>
<groupId>com.udojava</groupId>
<artifactId>EvalEx</artifactId>
<version>2.5</version>
</dependency>
用这个片段:
System.out.println(
new Expression( "(x + y) / z" )
.with( "x", BigDecimal.valueOf( 1.1 ) )
.and( "y", BigDecimal.valueOf( 1.1 ) )
.and( "z", BigDecimal.valueOf( 1.1 ) )
.eval()
);
印刷:
2
推荐阅读
- apache-kafka - IBM IIDR for kafka - 用户出口不可点击
- javascript - 页面更新后 Selenium Python Empty 返回
- python - SQLAlchemy NameError:未定义名称'db'
- electron - 在主进程和渲染器进程之间发送大数据的有效方法
- angular - 如何测试角度 - catchError 运算符'rxjs'
- android - 如何在 dataBinding 中为视图设置监听器功能(如 setOnClickListener)
- python - 为什么 Python 进度库会打印额外的字符
- xml - 带有列表框的多选下拉菜单
- c++ - 尝试制作自定义字符串类,但我不断收到 C2440 和 E0415 错误
- gdb - 使用 gdb 调试 xv6 内核 - 所选架构 i386 与报告的目标架构不兼容