假设一个程序接收到一个输入字符串"8*10+6/2"
并且应该输出83
,在这种情况下。如何处理运营商?
我可以将字符串切成单独的字符串,然后检测它是数字还是运算符。如果是运算符,我可以将其转换为int
. 但我不知道如何处理运算符以便计算有效。
假设一个程序接收到一个输入字符串"8*10+6/2"
并且应该输出83
,在这种情况下。如何处理运营商?
我可以将字符串切成单独的字符串,然后检测它是数字还是运算符。如果是运算符,我可以将其转换为int
. 但我不知道如何处理运算符以便计算有效。
你可以使用DataTable.Compute
-"trick":
double result = (double)new DataTable().Compute("8*10+6/2", null);
表达式中支持以下算术运算符:
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulus)
更多信息请参见:DataColumn.Expression
表达式语法。