【问题标题】:How to Convert Calculation String to Double [duplicate]如何将计算字符串转换为双精度 [重复]
【发布时间】:2018-04-03 19:03:02
【问题描述】:

我的输入中的以下字符串

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

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

【问题讨论】:

  • 请出示您的代码
  • 什么异常?什么代码?
  • 如果你需要计算这样的东西,你可以使用wolframalpha.com。如果你想用 C# 代码来做,请分享你到目前为止所做的以及你已经为处理问题所做的研究。

标签: c# .net string


【解决方案1】:

我通常为此使用DataTable

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

或者:

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

【讨论】:

  • 哇——我从来不知道。
【解决方案2】:

能很快想到2个办法:

  1. 更快 - 使用带有 ExpressionEvaluator 的 Spring.Net(特别是 Spring.Expressions),在这种情况下可能会有所帮助
  2. 乏味 - 编写您自己的代码来执行表达式解析和评估。 阅读关于中缀表达式评估。

【讨论】:

    猜你喜欢
    • 2017-10-06
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多