首页 > 解决方案 > 想要一个支持基于 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-jexland mathparser,但没有一个支持BigDecimal.

标签: java

解决方案


这个 Maven 依赖项

        <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

推荐阅读