如何在C#中将字符串转换为浮点数

时间:2013-10-11 20:39:24

标签: c# visual-studio

大家好我正在创建计算器,我想将这些值转换为浮点数     string num =“2 + 6 + 8 + 9”; 所以他们会自动添加并总共25个? 无论如何要做到这一点?

抱歉我的英文不好

4 个答案:

答案 0 :(得分:6)

使用DataTable.Compute; - )

DataTable table = new DataTable();
int i = (int) table.Compute("2+6+8+9", null);  // 25

适用于所有规则以及支持哪些运营商:DataColumn.Expression

如果您不知道结果的类型,请始终使用浮点类型,System.Convert.ToDouble接受IConvertible的所有内容,例如:

double d1 = System.Convert.ToDouble(table.Compute("2+6+8+9", null));   // 25.0
double d2 = System.Convert.ToDouble(table.Compute("2+6+8+9/2", null)); // 20.5

答案 1 :(得分:2)

您正在寻找表达式评估程序。有很多可用的。例如:http://csharpeval.codeplex.com/

答案 2 :(得分:1)

您的主题中提出的问题很简单。您可以将字符串转换为浮点数,如下所示:

double f = double.Parse("2.5");

但是,如果要处理问题中描述的任意表达式,则需要更多工作。幸运的是,其他人已经完成了这项工作。我编写了自己的表达式评估程序,您可以在我的文章A C# Expression Evaluator中看到它。它除了支持您的问题中的示例表达式外,还支持变量和函数。

答案 3 :(得分:-1)

这可能会让你得到你想要的东西:

    string[] inputArray = Regex.Split(num, @"\D+");
    float results = 0;

    foreach (var item in inputArray )
    {
        results += float.Parse(item);
    }