你好家伙我创建计算器,我想这些值转换为浮动 字符串NUM =“2 + 6 + 8 + 9”; 所以他们会自动添加并给出共25个? 有没有办法做到这一点?如何将字符串转换为浮动在C#
对不起我的英文不好
你好家伙我创建计算器,我想这些值转换为浮动 字符串NUM =“2 + 6 + 8 + 9”; 所以他们会自动添加并给出共25个? 有没有办法做到这一点?如何将字符串转换为浮动在C#
对不起我的英文不好
使用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");
但是,如果你想为你的问题,这需要更多的工作描述来处理任意表达式。幸运的是,其他人已经完成了这项工作。我写了自己的表达式求值器,你可以在我的文章A C# Expression Evaluator中看到它。除了支持问题中的示例表达式外,它还支持变量和函数。
这可能会得到你想要的东西:
string[] inputArray = Regex.Split(num, @"\D+");
float results = 0;
foreach (var item in inputArray)
{
results += float.Parse(item);
}
如果表达式包含“+”以外的运算符,该怎么办? –
不管每个数字都会在数组中被拆分出来,无论是将它们分开的+ =正数。 – Bit
不,@LB问你在以“7 * 6”为例时会发生什么,例如 –
'反正是有做到这一点'是的,你应该写一些代码? –
'float string'?你想结束'num = 25','25'? '25.0'? –
你需要使用jQuery。明显。 – blowdart