• .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);
     
        }

    }

  • 相关阅读:
    JAVA maven 仓库 基础命令
    JAVA maven 环境变量配置
    JAVA jdk 环境变量配置
    kafka 环境搭建
    java servlet 基础
    java idea 配置tomcat
    java tomcat服务器
    java io流
    java 字符流
    【火炉炼AI】深度学习005-简单几行Keras代码解决二分类问题
  • 原文地址:https://www.cnblogs.com/zfking/p/506794.html
Copyright © 2020-2023  润新知