如何在 C# 中将字符串转换为浮点数
本文关键字:字符串 转换 浮点数 | 更新日期: 2023-09-27 18:34:54
你好,我正在创建计算器,我想将这些值转换为浮点数 字符串 num = "2+6+8+9";所以他们会自动添加并给出总共 25 个?有没有办法这样做?
对不起,我的英语不好
使用 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
您正在寻找表达式计算器。有很多可用的。例如:http://csharpeval.codeplex.com/
你的主题中提出的问题很简单。您可以将字符串转换为浮点数,如下所示:
double f = double.Parse("2.5");
但是,如果要按照问题中所述处理任意表达式,则需要做更多的工作。幸运的是,其他人已经完成了这项工作。我编写了自己的表达式计算器,您可以在我的文章 C# 表达式计算器中看到它。除了支持问题中的示例表达式外,它还支持变量和函数。
这可能会让你得到你想要的:
string[] inputArray = Regex.Split(num, @"'D+");
float results = 0;
foreach (var item in inputArray )
{
results += float.Parse(item);
}