如何计算字符串

panzi667 2008-06-07 11:33:48
string str1 = "20000 > 0 ? (20000 - 0) * 0.02 : 0";
double xx = Convert.ToDouble(str1);

但是报错:输入字符串的格式不正确
...全文
440 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
allenle 2008-06-07
  • 打赏
  • 举报
回复
LZ,是不是想直接执行字符串里面的“公式”?

如果是:这里有个参考,是我网上搜的,我也没有实践过,希望对你有些用。

http://www.sudu.cn/info/html/edu/net/20071227/50552.html
懒牛科技 2008-06-07
  • 打赏
  • 举报
回复
string str1 = 20000 > 0 ? ((20000 - 0) * 0.02).ToString() : 0;
double xx = Convert.ToDouble(str1);
panzi667 2008-06-07
  • 打赏
  • 举报
回复
公式是文本,而这个刚开始是不确定的,所以中间必须有个转化



下面这个警告怎么解决?

代码:
// 创建编译器实例。
ICodeCompiler complier = (new CSharpCodeProvider().CreateCompiler());

警告 2 “System.CodeDom.Compiler.CodeDomProvider.CreateCompiler()”已过时:“Callers should not use the ICodeCompiler interface and should instead use the methods directly on the CodeDomProvider class. Those inheriting from CodeDomProvider must still implement this interface, and should exclude this warning or also obsolete this method.” E:\winform\temp\WindowsApplication8\WindowsApplication8\CalculateExpression.cs 26 39 WindowsApplication8


冷月孤峰 2008-06-07
  • 打赏
  • 举报
回复
直接:
double str1 = 20000 > 0 ? (20000 - 0) * 0.02 : 0;
panzi667 2008-06-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 syeerzy 的回复:]
方法有很多,如果是ASP.NET 则直接使用 javascript的 eval(v) 函数最发布, 如 eval("1+1") 会得到 2

如果不是ASP.NEt,自己去解析虽然也可以,但是复杂,不如换个思路,使用CodeDOM 动态生成代码,把式子拼进去执行.
[/Quote]

能给个例子么?
syeerzy 2008-06-07
  • 打赏
  • 举报
回复
方法有很多,如果是ASP.NET 则直接使用 javascript的 eval(v) 函数最发布, 如 eval("1+1") 会得到 2

如果不是ASP.NEt,自己去解析虽然也可以,但是复杂,不如换个思路,使用CodeDOM 动态生成代码,把式子拼进去执行.

panzi667 2008-06-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 allenle 的回复:]
LZ,是不是想直接执行字符串里面的“公式”?

如果是:这里有个参考,是我网上搜的,我也没有实践过,希望对你有些用。

http://www.sudu.cn/info/html/edu/net/20071227/50552.html
[/Quote]

是的,我想直接计算字符串里面的公式
c3823020 2008-06-07
  • 打赏
  • 举报
回复
string str1 = "20000 > 0 ? (20000 - 0) * 0.02 : 0";
里面的20000 > 0 ? (20000 - 0) * 0.02 : 0根本就不会运算 也就是说无法降字符串"20000 > 0 ? (20000 - 0) * 0.02 : 0" 转换为double类型的


改成1楼的就对了

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧