自己在开发虚拟仪器检测系统时,需要实时的进行计算式表达求解结果进行转换,找了一些资料,有开源的,有自己写的,但我最后还是选择.NET自带的基于JSCRIPT的组件,只要二行代码就可以了,计算速度也是很好的,直接上实例,有需要的拿去。不知道如何上传附件了,粘代码吧。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 表达式计算组件示例
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 计算
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
object v = EvalExpress(this.textBox1.Text);
//可根据需要转换成bool、int、string等
this.textBox2.Text = v.ToString()??"";
}
/// <summary>
/// 调用JSCRIPT功能
/// </summary>
/// <param name="sExpression"></param>
/// <returns></returns>
private object EvalExpress(string sExpression)
{
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
return Microsoft.JScript.Eval.JScriptEvaluate(sExpression, ve);
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}