转 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#中 字符串转换为计算公式,并计算结果
根据总结,大概分为以下三种: 第一种: 用DataTable中的Compute方法. 例如:" 1*2*3 " 代码如下: var a = new System.Data.Dat ...
- C#中字符串转换为计算公式(自定义公式的计算)
第一种解决方案 第一种也是功能最强大的一种,可以使用Eval函数,像在Java中一样强大,几乎所有的运算符都可以实现,包括四则运算,与或非等. 添加COM引用: private void button ...
- C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果
[csharp] view plain copy print? //方法一 利用DataTable中的Compute方法 例如:1*2-(4/1)+2*4=6 , , , ); DataTable d ...
- C#中 字符串转换为计算公式
//方法一 利用DataTable中的Compute方法 例如:1*2-(4/1)+2*4=6 string formulate = string.Format("{0}*{1} - {2} ...
- JS代码把JSON字符串转换为对象,计算对象的长度并把它转换为数字类型,把转换的值相加减
Number(JSON.parse(rowObject.RenewalProperty).length)-1
- C#中字符串转换为计算公式
添加COM引用: private void button_Click(object sender, EventArgs e) { MSScriptControl.ScriptControl sc = ...
- js如何将纯数字字符串转换为long型
1.js如何将纯数字字符串转换为long型? js 中 int的存储位数?最大十进制数表示是多少? 精度http://www.jb51.net/article/59808.htm 整数(不使用小数点或 ...
- Java字符串转换为日期和时间比较大小
字符串转换为时间: String data = "2014/7/11"; SimpleDateFormat dfs = new SimpleDateFormat("yyy ...
- Python不使用int()函数把字符串转换为数字
Python不使用int()函数把字符串转换为数字 2018年05月21日 14:18:45 边缘ob边缘ob 阅读数:1035 https://blog.csdn.net/qq_33192555/a ...
随机推荐
- 前端面试题HTML
浏览器页面有哪三层构成,分别是什么,作用是什么?
- post登录资料备份
# coding=utf-8 import urllib import hashlib import http.client import http.cookiejar import http.coo ...
- 微信小程序组件解读和分析:三、swiper滑块视图
swiper滑块组件说明: 滑块视图容器,用于展示图片,可以通过用户拖拽和设置自动切换属性控制图片的切换 组件的使用示例的运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? ...
- treetable adding nodes at root level
describe("loadBranch()", function() { beforeEach(function() { this.newRows = " ...
- margin与padding如何进行区分
margin与padding如何进行区分,这是很多学html人的困扰,其实说白了padding 就是内容与边框的空隙.而margin则是模块与模块的空隙.[3]
- MyBatis 的基本介绍及使用
一.简介 MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架(ORM).MyBatis 可以使用简单的 XML 或 注解用于配置和映射数据表,是将 POJO(Plain Old ...
- Github Pages另一个选择:GitCafe-Pages
今天找资料时,瞥到了GitCafe-Pages字样,记得前些日子就看到过GitCafe,知道这个是国内的类似Github的代码托管平台,所以一看字样就明白了这个是与Github Pages一样的东东. ...
- Python生成随机不重复姓名昵称
姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...
- open random
open文件操作 f = open('文件路径',mode='rwab+',encoding='utf-8') # content = f.read(3) # 读出来的都是字符 # f.seek(3) ...
- Promise对象和回调函数,解决异步数据传递问题
下面的代码例子,均已小程序的异步请求数据为案例来说明 1.利用回调函数,来解决异步数据传递问题 异步操作api.js const getBooks = (url, callback) => { ...