如何将计算字符串转换为Double

时间:2017-10-23 09:20:43

标签: c# .net string

在我的输入中跟随字符串

"(((5292-5325)-(5401/5))/5325)"

我需要计算这个并想要在float中获得输出。为此我使用了stringfloat转换,但我遇到了异常。怎么做那个?

2 个答案:

答案 0 :(得分:6)

我通常使用DataTable来实现此目的:

DataTable dt = new DataTable();
var result = dt.Compute("(((5292-5325)-(5401/5))/5325)", "");

或者:

double result = (double)dt.Compute("(((5292-5325)-(5401/5))/5325)", "");

答案 1 :(得分:0)

可以快速想到两种方式:

  1. 更快 - 使用Spring.Net(特别是Spring.Expressions),它具有可能在这种情况下可以提供帮助的ExpressionEvaluator
  2. 单调乏味 - 制作自己的代码解析表达式&评价。 阅读关于Infix Expression评估。