当前位置: 首页 > 软件库 > 程序开发 > 数学计算 >

ToolGood.Algorithm

计算引擎
授权协议 Apache
开发语言 C#
所属分类 程序开发、 数学计算
软件类型 开源软件
地区 国产
投 递 者 吕亮
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

快速上手

   AlgorithmEngine engine = new AlgorithmEngine();
    double a=0.0;
    if (engine.Parse("1+2")) {
        a = (double)engine.Evaluate();
    }
    var c = engine.TryEvaluate("2+3", 0);
    var d = engine.TryEvaluate("count({1,2,3,4})", 0);//{}代表数组,返回:4
    var s = engine.TryEvaluate("'aa'&'bb'", ""); //字符串连接,返回:aabb
    var r = engine.TryEvaluate("(1=1)*9+2", 0); //返回:11
    var d = engine.TryEvaluate("'2016-1-1'+1", DateTime.MinValue); //返回日期:2016-1-2
    var t = engine.TryEvaluate("'2016-1-1'+9*'1:0'", DateTime.MinValue);//返回日期:2016-1-1 9:0

自定义参数

//定义圆柱信息
    public class Cylinder : AlgorithmEngine
    {
        private int _radius;
        private int _height;
        public Cylinder(int radius, int height)
        {
            _radius = radius;
            _height = height;
        }

        protected override Operand GetParameter(Operand curOpd)
        {
            if (curOpd.Parameter == "[半径]") {
                return new Operand(OperandType.NUMBER, _radius);
            }
            if (curOpd.Parameter == "[直径]") {
                return new Operand(OperandType.NUMBER, _radius * 2);
            }
            if (curOpd.Parameter == "[高]") {
                return new Operand(OperandType.NUMBER, _height);
            }
            return base.GetParameter(curOpd);
        }
    }
    //调用方法
    Cylinder c = new Cylinder(3, 10);
    c.TryEvaluate("[半径]*[半径]*pi()", 0.0);      //圆底面积
    c.TryEvaluate("[直径]*pi()", 0.0);            //圆的长
    c.TryEvaluate("[半径]*[半径]*pi()*[高]", 0.0); //圆的体积

Excel 函数

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

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

 相关资料
  • 有没有一种方法可以暂停Dataproc群集,这样当我不积极运行火花外壳或火花提交作业时就不会收到账单?此链接处的群集管理说明:https://cloud.google.com/sdk/gcloud/reference/beta/dataproc/clusters/ 仅演示如何销毁群集,但我安装了spark cassandra连接器API。这是我创建每次都需要安装的映像的唯一选择吗?

  • 问题内容: Play 2.0模板引擎是否支持html页面中的简单计算。 让我们说,我创建一个sum.scala.html页面: 有什么办法可以通过某些函数“获取a和b的和”?或是否有任何play 2.0专家知道关于play 2.0模板引擎中计算的任何好主意?谢谢 问题答案: 你试过了吗?

  • 我在GCE上使用麋鹿堆叠。一切正常。但后来我安装了NGINX,后来卸载了它。之后,Kibana在卸载NGINX后无法启动。 Elasticsearch版本:2.4.5 Kibana版本:4.6 KibanaSTDOUT日志是: {“类型”:“日志”,“时间戳”:“2017-06-06T08:13:06Z”,“标签”:[“状态”,“插件:kibana@1.0.0“,“信息”],“pid”:364,“

  • 问题内容: 我有一个问题,我通过沿行轴串联(垂直堆叠)来生成熊猫数据框。 每个组成数据帧都有一个自动生成的索引(升序编号)。 串联后,我的索引被搞砸了:它的计数最多为n(其中n是相应数据帧的shape [0]),并在下一个数据帧从零重新开始。 我正在尝试“根据给定的当前顺序重新计算索引”或“重新索引”(或者我认为)。事实证明,这似乎并没有在做。 这是我尝试做的事情: 它失败并显示“无法从重复的轴重

  • 我有这个模式 列表表 [{“movie_id”:100,“gene1”:“犯罪”,“计数”:1,“id”:100},{“movie_id”:141267,“gene1”:“犯罪”,“计数”:1,“id”:141267},{“movie_id”:207932,“gene1”:“犯罪”,“计数”:1,“id”:207932},{“movie_id”:238636,“gene1”:“惊悚”,“计数”:1