c# - 如何使用表达式来模拟数学表达式?
问题描述
下面是我的代码片段:
ConstantExpression constant1 = Expression.Constant(5);
ConstantExpression constant2 = Expression.Constant(5.3);
Expression expr = Expression.Multiply(constant1, constant2);
var compiled = Expression.Lambda<Func<double>>(expr).Compile();
Console.WriteLine(compiled.Invoke());
Console.WriteLine();
错误消息中的系统引发异常Expression expr = Expression.Multiply(constant1, constant2);
是“System.Int32”和“System.Double”之间没有二元运算符乘法。我将乘法更改为添加和 div 错误消息是相同的。
如何使用表达式来模拟数学表达式?
ps:我不会使用类似的表达方式ConstantExpression constant1 = Expression.Constant(5.0);
。因为如果我编写如下代码:
Console.WriteLine(string.Format("5*5.3={0}",5 * 5.3));
没关系,有没有办法模拟这样的数学表达式?
解决方案
如果你想避免使用
ConstantExpression constant1 = Expression.Constant(5.0);
您可以使用:
ConstantExpression constant1 = Expression.Constant(5d);
推荐阅读
- python - 条件匹配时添加一行?
- javascript - 如何等待 AWS 假设角色,然后继续进行模块定义
- c++ - MDI 面向对象的方法,从 MDICREATESTRUCT 检索此指针
- drupal-7 - Drupal 7面包屑未显示
- nestjs - 使用解析器类继承时如何注入服务
- django - 如果使用 django-import-export 已经存在 id,如何在导入 csv 后更新 django 模型?
- eclipse - Eclipse 和 gsl 库 - 找不到 -lgsl_sf_bessel
- python - 将 pandas groupby 结果扩展到初始数据框
- google-sheets - 如何在谷歌表格查询公式中使用绝对引用或按列名查询多个表格?
- android - 图片未从 Firebase 中检索