C#中 字符串转换为计算公式,并计算结果
根据总结,大概分为以下三种:
第一种: 用DataTable中的Compute方法。
例如:" 1*2*3 "
代码如下:
var a = new System.Data.DataTable().Compute("1*2*3", "");
//结果a=>6
第二种:利用javascript中的Eval方法解析.此方法需引入添加COM引用:Microsoft Sctipt Control 1.0
在使用过程中,若出现无法嵌入互操作类型“MSScriptControl.ScriptControlClass”,则可以这样操作。右击MSScriptControl程序集--〉属性--〉嵌入互操作类型--〉改为false
让我们看下这个方法的强大之处:
例如:"1*2*3"
此方法还能解析像这种等字符串 :“if(3>2){ 1 }else { 2}”
代码如下:
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "javascript";
var b = sc.Eval("1*2*3");
//结果b=>6
第三种: 引入添加.net 引用 Microsoft.JScript 和Microsoft.Vsa
个人认为此方法跟方法二是一样的,具体区别不清楚
例如:"1*2*3"
此方法还能解析像这种等字符串 :“if(3>2){ 1 }else { 2}”,跟方法二一样。
代码如下:
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
var c = Microsoft.JScript.Eval.JScriptEvaluate("1*2*3", ve);
//结果c=>6
总结,项目中难免会出现类似这种情况,我个人认为,如果只是简单的计算,第一种无疑是最方便的,若是有逻辑的字符串需要解析,就用第二种或者是第三种。
个人喜欢。
本文到此结束。谢谢观赏。
C#中 字符串转换为计算公式,并计算结果的更多相关文章
- C#中字符串转换为计算公式(自定义公式的计算)
第一种解决方案 第一种也是功能最强大的一种,可以使用Eval函数,像在Java中一样强大,几乎所有的运算符都可以实现,包括四则运算,与或非等. 添加COM引用: private void button ...
- 转 C# 将字符串转换为计算公式,并计算结果
根据总结,大概分为以下三种: 第一种: 用DataTable中的Compute方法. 例如:" 1*2*3 " 代码如下: var a = new System.Data.Data ...
- C#中 字符串转换为计算公式
//方法一 利用DataTable中的Compute方法 例如:1*2-(4/1)+2*4=6 string formulate = string.Format("{0}*{1} - {2} ...
- C#中字符串转换为计算公式
添加COM引用: private void button_Click(object sender, EventArgs e) { MSScriptControl.ScriptControl sc = ...
- SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)
在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名) 例如:select convert(int,'3')2. cast(字段名 as i ...
- js中字符串转换为数值的两种方法的区别
在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt() //将字符串转换为整型 parseFloat() //将字符串转换为浮点型 转换函数在 ...
- Python中 字符串 转换为 字典
需求:把以下字符串转换为字典 #字符串 testStr = '{ "pName": "Ceshi", "gender": 1, " ...
- js中字符串转换为日期型
简介:字符串转日期型函数 传入一个字符串格式的日期,如何转换为日期型的.以下为转换方案. //字符串转换为日期函数,返回日期型(传入的日期格式2014-04-22) function StringTo ...
- C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果
[csharp] view plain copy print? //方法一 利用DataTable中的Compute方法 例如:1*2-(4/1)+2*4=6 , , , ); DataTable d ...
随机推荐
- .NET开发笔记(二十三) 谷歌地图下载
关于如何将地球经纬度坐标系统转换成程序中常用到的平面2D坐标系统,网上的文章很多,参考http://www.cnblogs.com/beniao/archive/2010/04/18/1714544. ...
- JavaScript多文件下载
对于文件的下载,可以说是一个十分常见的话题,前端的很多项目中都会有这样的需求,比如 highChart 统计图的导出,在线图片编辑中的图片保存,在线代码编辑的代码导出等等.而很多时候,我们只给了一个链 ...
- 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
文章中引用的代码均来自https://github.com/vczh/tinymoe. 看了前面的三篇文章,大家应该基本对Tinymoe的代码有一个初步的感觉了.在正确分析"print ...
- 【js技巧】~(按位非)运算符的妙用
今天在reivew部门牙套姐MM的代码的时候,有点小心得,给大家分享.我们常常说到,“学以致用”,但我发现自己却很少能真正做到.<javascript高级程序设计>即大家常说的“红宝书”, ...
- Jenkins常用插件说明(持续更新)
本文主要记录在学习以及使用Jenkins过程中常用的对我们有帮助的插件,同时本文将会持续进行更新.如果大家发现有其他野很好用的插件,也欢迎参照下面的格式,在评论中进行回复反馈. 一.通用插件 1.Em ...
- Module Zero之用户管理
返回<Module Zero学习目录> 用户实体 用户管理者 用户认证 用户实体 用户实体代表应用的一个用户,它派生自AbpUser类,如下所示: public class User : ...
- Oracle 多行转多列,列值转为列名
前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要导出问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了 ...
- iOS-Objective-C基础
一.Foundation框架 概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NS ...
- <dependency>
<dependency> <groupId>org.hibernate</groupId> ...
- MongoDB 维护Replica Set
在每个MongoDB(版本 3.2.9) Instance中,都有一个本地数据库(local),用于存储 Replication 进程的信息和本地数据.local 数据库的特性是:位于local数据库 ...