ToolGood.Algorithm 计算引擎开源项目

我要开发同款
匿名用户2017年01月11日
193阅读

技术信息

开源地址
https://github.com/toolgood/ToolGood.Algorithm
授权协议
Apache

作品详情

ToolGood.Algorithm是一款计算引擎,目前支持四则运算、Excel绝大多数函数,并支持自定义参数。

快速上手   AlgorithmEgie egie = ew AlgorithmEgie();    double a=0.0;    if (egie.Parse("1+2")) {        a = (double)egie.Evaluate();    }    var c = egie.TryEvaluate("2+3", 0);    var d = egie.TryEvaluate("cout({1,2,3,4})", 0);//{}代表数组,返回:4    var s = egie.TryEvaluate("'aa'&'bb'", ""); //字符串连接,返回:aabb    var r = egie.TryEvaluate("(1=1)*9+2", 0); //返回:11    var d = egie.TryEvaluate("'2016-1-1'+1", DateTime.MiValue); //返回日期:2016-1-2    var t = egie.TryEvaluate("'2016-1-1'+9*'1:0'", DateTime.MiValue);//返回日期:2016-1-1 9:0自定义参数//定义圆柱信息    public class Cylider : AlgorithmEgie    {        private it _radius;        private it _height;        public Cylider(it radius, it height)        {            _radius = radius;            _height = height;        }        protected override Operad GetParameter(Operad curOpd)        {            if (curOpd.Parameter == "[半径]") {                retur ew Operad(OperadType.NUMBER, _radius);            }            if (curOpd.Parameter == "[直径]") {                retur ew Operad(OperadType.NUMBER, _radius * 2);            }            if (curOpd.Parameter == "[高]") {                retur ew Operad(OperadType.NUMBER, _height);            }            retur base.GetParameter(curOpd);        }    }    //调用方法    Cylider c = ew Cylider(3, 10);    c.TryEvaluate("[半径]*[半径]*pi()", 0.0);      //圆底面积    c.TryEvaluate("[直径]*pi()", 0.0);            //圆的长    c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //圆的体积Excel函数

函数:逻辑函数、数学与三角函数、文本函数、统计函数、日期与时间函数

注:函数名不分大小写,带方括号的参数可省略,示例的返回值,可能为近似值。

功能介绍

ToolGood.Algorithm 是一款计算引擎,目前支持四则运算、Excel 绝大多数函数,并支持自定义参数。 快速上手    AlgorithmEngine engine = new A...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论