首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么计算一个字符串公式的值

2012-10-06 
怎样计算一个字符串公式的值?式子:string str a*(b-c)float a2,b10,c9.5做一个替换后将str变成:s

怎样计算一个字符串公式的值?
式子:string str = "a*(b-c)";
float a=2,b=10,c=9.5;

做一个替换后将str变成:str="2*(10-9.5)";
怎么得到真正的值1呢?

[解决办法]
这个你得 自己写一套解析的方法
[解决办法]
LS 说的对,你要自己写解析方法,这个就像做复杂的四则运算一样,早起这中算法很难得,看你小时候的计算器就知道了,现在 很简单了,你查下,很多资料的,如果 是对称的,可以考虑用栈
[解决办法]

C# code
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);        }    }
[解决办法]
你这不科学啊,,,比较死
探讨
C# code


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
……

[解决办法]
放到查询分析器里面执行多直接,或者写到存储过程里专门负责此类逻辑,项目里面封装好方法,直接调用,传个字符串类型的参数就ok
[解决办法]
string str = Convert.ToDecimal(a)*(Convert.ToDecimal(b)-Convert.ToDecimal(c)).ToString();
[解决办法]
好方法。。
探讨
放到查询分析器里面执行多直接,或者写到存储过程里专门负责此类逻辑,项目里面封装好方法,直接调用,传个字符串类型的参数就ok

热点排行