【问题标题】:how to convert a formula stored in a string to double? [duplicate]如何将存储在字符串中的公式转换为双精度? [复制]
【发布时间】:2016-03-16 23:20:30
【问题描述】:

我有一个字符串,其值存储为:

string formula = "(10.5+10.5)/(2*5)";

double a=convert.ToDouble((10.5+10.5)/(2*5)) 工作正常,但我需要像双 a=convert.ToDouble(formula) 一样解决它。可能吗?我收到错误输入字符串格式不正确。

【问题讨论】:

标签: c#


【解决方案1】:

您不能简单地将公式传递给Convert.ToDouble 并期望它会计算它。您需要计算公式。

最好的方法是实现一个解析器,它将构建一个表达式树,并计算值。

另一个 hacky 解决方案是利用 ComputeDataTable 方法:

System.Data.DataTable table = new System.Data.DataTable();
decimal result = (decimal)table.Compute(formula);

请注意,它返回decimal 对象。如果需要,您现在可以使用Convert 将其变为double

double resultDouble = Convert.ToDouble(result);

【讨论】:

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