博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
好用的Java数学表达式计算工具——Exp4j
阅读量:6423 次
发布时间:2019-06-23

本文共 1694 字,大约阅读时间需要 5 分钟。

Exp4j是一个简单易用的开源Java数学表达式计算工具,由德国Java开源爱好者Frank发起并持续进行维护,旨在提供对数学表达式的计算功能。

实际使用一下:

 
  1. package org.demo.exp4j; 
  2.  
  3. import de.congrace.exp4j.Calculable; 
  4. import de.congrace.exp4j.ExpressionBuilder; 
  5. import de.congrace.exp4j.UnknownFunctionException; 
  6. import de.congrace.exp4j.UnparsableExpressionException; 
  7.  
  8. /** 
  9.  * Exp4j Demo 
  10.  * @author William Xu 
  11.  */ 
  12. public class Exp4jDemo { 
  13.  
  14.     // 包含变量的数学表达式 
  15.     private final String FUNCTION = "x/y + (x+y)*z"
  16.  
  17.     public Exp4jDemo() { 
  18.  
  19.     } 
  20.  
  21.     public void testFunction() { 
  22.  
  23.         // 构建表达式,并声明变量定义 
  24.         ExpressionBuilder builder = new ExpressionBuilder(FUNCTION) 
  25.                 .withVariableNames("x""y""z"); 
  26.          
  27.         // 以下两种方式也可以声明变量,并直接给变量进行赋值 
  28.         /*ExpressionBuilder.withVariable(String var,double value) 
  29.         ExpressionBuilder.withVariables(Map<String,Double> variables)*/ 
  30.          
  31.         try { 
  32.              
  33.             // 生成计算对象 
  34.             Calculable calc = builder.build(); 
  35.  
  36.             // 设置变量的值 
  37.             calc.setVariable("x"5); 
  38.             calc.setVariable("y"3); 
  39.             calc.setVariable("z"4); 
  40.  
  41.             // 计算结果 
  42.             System.out.println(calc.calculate()); 
  43.  
  44.         } catch (UnknownFunctionException e) { 
  45.             e.printStackTrace(); 
  46.         } catch (UnparsableExpressionException e) { 
  47.             e.printStackTrace(); 
  48.         } 
  49.     } 
  50.  
  51.  
  52.     public static void main(String[] args) { 
  53.  
  54.         Exp4jDemo exp4jDemo = new Exp4jDemo(); 
  55.          
  56.         exp4jDemo.testFunction(); 
  57.  
  58.  
  59.     } 

Exp4j所支持的运算符包括:

  • 加法:“2 + 2
  • 减法:“2 - 2”
  • 乘法:“2 * 2
  • 除法:“2 / 2
  • 取模:“2 % 2”
  • 正负号:“+2 - (-2)”
  • 幂:“2 ^ 2”
内建函数包括:
  • abs: absolute value
  • acos: arc cosine
  • asin: arc sine
  • atan: arc tangent
  • cbrt: cubic root
  • ceil: nearest upper integer
  • cos: cosine
  • cosh: hyperbolic cosine
  • exp: euler's number raised to the power (e^x)
  • floor: nearest lower integer
  • log: logarithmus naturalis (base e)
  • sin: sine
  • sinh: hyperbolic sine
  • sqrt: square root
  • tan: tangent
  • tanh: hyperbolic tangent

本文转自william_xu 51CTO博客,原文链接:http://blog.51cto.com/williamx/1065823,如需转载请自行联系原作者

 

 

你可能感兴趣的文章
.NET建议使用的大小写命名原则
查看>>
Git:错误:error:src refspec master does not match any
查看>>
SSIS 数据类型和类型转换
查看>>
Oracle数据库“Specified cast is农田valid”
查看>>
数据层新思路,写数据库无关的数据层 ORM在数据库内做更为合适
查看>>
armv8(aarch64)linux内核中flush_dcache_all函数详细分析【转】
查看>>
房地产英语 Real estate词汇
查看>>
python接口自动化测试(八)-unittest-生成测试报告
查看>>
第 26 章 MySQL
查看>>
How far away ?(DFS)
查看>>
C#中三种截屏方式总结
查看>>
EF架构~LinqToEntity里实现left join的一对一与一对多
查看>>
Spring.net 学习笔记之ASP.NET底层架构
查看>>
C# System.Windows.Forms.WebBrowser中判断浏览器内核和版本
查看>>
Java 动态太极图 DynamicTaiChi (整理)
查看>>
Web APi之Web Host消息处理管道(六)
查看>>
微信公众平台后台编辑器上线图片缩放和封面图裁剪功能
查看>>
git使用教程2-更新github上代码
查看>>
张掖百公里,再次折戟
查看>>
SAP QM Batch to Batch的转移过账事务中的Vendor Batch
查看>>