Skip to content

zhuzho/FormulaTreeParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

math formula parse 简单的数学公式解析,将数学公式解析为树形结构,使用BigDecimal做计算 支持部分计算函数

  • 数学公式计算解析,支持函数内嵌套函数或公式
  • 不支持IF 三目表达式
  • 自定义扩展函数在枚举类中添加
  • ($wget_1_1#+0.7*0.3/0.1-1)avg(1,3,4,5,$aa#)($wget_1_2#+0.9)-100" ;
  • ($wget_1_1#+0.7)($wget_1_2#+0.9)-100+50-($wget_1_3#+0.7)($wget_1_4#+0.9) ;
  • ($x#-$y#)*3 ;
  • 134+1-2*3+123 ;
 Map<String,Object> params = new HashMap<>();
 Expression formula = formula = new FormulaTreeParser("($wget_1_1#+0.7*0.3/0.1-1)*avg(1,sum(3,2),4,5,$aa#+6-1)*($wget_1_2#+0.9)-100",0).parse();
 FunctionEnum functionEnum = FunctionEnum.get(formula.getFunc());
 if (Objects.nonNull(functionEnum)){
  System.out.println(functionEnum.calculator.calculate(formula,params))
 }

About

math formula parse demo数学公式简单解析

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages