zoukankan      html  css  js  c++  java
  • .net 通用计算库

    下载地址
    我自己做的一个计算库,专门用来做公式的计算如
    a*b*3.2-2^ 这是简单的,还更复杂的通用函数和自定定义函数
    a^2*sin(c-5)*max(a,b,c,d)-power(c,2)+sqrt(c)+abs(d)
    等等一系列的函数,每个函数对应一处理这个函数的方法,不可能一个个去检查方法名,然后用 if ..else if ..else if 这么复杂
    我就把每个函数的处理方法名写为f_函数名,如sin的对应的处理方法为f_sin 参数是一个ArrayList,返回一个double类型的数,这样进行处理时,只要根据函数名就可以用反射的机制来调用相关的处理函数,
    这个计算库经过8个月使用和调试,已在我们公司广泛应用
    示例

     
    using System;
    using System.Collections;
    using hammergo.caculator;
     
    public calss test
    {
       public void Main()
       {
          string express="a*b-6.23+a^2*sin(pi()/2)+max(1,2,3,4)";
          CalcFunction calcF = CalcFunction();
           MyList list=new MyList(10);
           list.add("a",2);
           list.add("b",2.2);
          double result= calcF.compute(express,list);
     
          //注ArrayList pList = calcF.getVaribles(s);是将s表达的的所有变量分析出来放入ArrayList中
        //变量支持如a2 ac2 等,还支持 adk.w 也就是中间带点的变量
       //有总是可以联系,我可以改进 ,实现的函数在xml文件中有
    //如果没有变量的话,直接高用compute的重载版本 calcF.compute(express);
     
        }

    }

  • 相关阅读:
    WEB测试用例(十五)
    WEB测试用例(十二)
    WEB测试用例(九)
    WEB测试用例(六)
    WEB测试用例(四)
    WEB测试用例(一)
    WEB测试方法(十一)
    WEB测试方法(十)
    Python 知识要点:对象的 init 和 del 方法
    Python 知识要点:类 和 对象
  • 原文地址:https://www.cnblogs.com/zfking/p/506794.html
Copyright © 2011-2022 走看看