怎样计算一个字符串公式的值?
式子:string str = "a*(b-c)";
float a=2,b=10,c=9.5;
做一个替换后将str变成:str="2*(10-9.5)";
怎么得到真正的值1呢?
[解决办法]
这个你得 自己写一套解析的方法
[解决办法]
LS 说的对,你要自己写解析方法,这个就像做复杂的四则运算一样,早起这中算法很难得,看你小时候的计算器就知道了,现在 很简单了,你查下,很多资料的,如果 是对称的,可以考虑用栈
[解决办法]
using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string str = "a * (b - c)"; string str1 = "2*(10-9.5)"; string str2 = Compute(str1); Console.WriteLine(str); Console.WriteLine(str1); Console.WriteLine(str2); Console.ReadLine(); } static string Compute(string str) { string a = str.Substring(0,str.IndexOf('*')); string b = str.Substring(str.IndexOf('(')+1,str.IndexOf('-')-str.IndexOf('(')-1); string c = str.Substring(str.IndexOf('-')+1, str.IndexOf(')') - str.IndexOf('-') - 1); double temp = Convert.ToDouble(a) * (Convert.ToDouble(b) - Convert.ToDouble(c));; return Convert.ToString(temp); } }
[解决办法]
你这不科学啊,,,比较死