Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 操作员'/';can';不能应用于类型为';十进制';和';双倍';-NCalc_C#_.net_Exception Handling_Casting_Ncalc - Fatal编程技术网

C# 操作员'/';can';不能应用于类型为';十进制';和';双倍';-NCalc

C# 操作员'/';can';不能应用于类型为';十进制';和';双倍';-NCalc,c#,.net,exception-handling,casting,ncalc,C#,.net,Exception Handling,Casting,Ncalc,我试图在NCalc中运行此公式: "( Abs([a] - [b]) / ( ([a] + [b]) / 2.0 ) ) * 100" 我得到一个错误: Operator '/' can't be applied to operands of types 'decimal' and 'double' [a]和[b]参数以小数形式传递。我试着在2和100上加上“m”,就像这样: "( Abs([a] - [b]) / ( ([a] + [b]) / 2m ) ) * 100m" 但它抛出了一

我试图在NCalc中运行此公式:

"( Abs([a] - [b]) / ( ([a] + [b]) / 2.0 ) ) * 100"
我得到一个错误:

Operator '/' can't be applied to operands of types 'decimal' and 'double'
[a]和[b]参数以小数形式传递。我试着在2和100上加上“m”,就像这样:

"( Abs([a] - [b]) / ( ([a] + [b]) / 2m ) ) * 100m"
但它抛出了一个例外:

Additional information: extraneous input 'm' expecting ')' at line 1:36

我跟着,但这对我没有帮助。同样的问题贴在网上,没有回答。有什么想法吗?

可能的解决方法是将
2m
作为参数传递,使其正确识别为
十进制值,例如:

string strExp = "( Abs([a] - [b]) / ( ([a] + [b]) / [c] ) ) * 100";
Expression e = new Expression(strExp);

e.Parameters["a"] = 3.5m;
e.Parameters["b"] = 1m;
e.Parameters["c"] = 2m;   //<- pass 2m as expression parameter
string strExp=“(Abs([a]-[b])/([a]+[b])/[c])*100”;
表达式e=新表达式(strExp);
e、 参数[“a”]=3.5m;
e、 参数[“b”]=1m;

e、 参数[“c”]=2m//@HenkHolterman不确定,但我认为C#是可以接受的,因为OP后面的一个问题是关于普通C#的,而不是NCalc:“我跟着这个问题……”。和
2m
为我编译并生成了一个结果(但没有检查计算结果是否正确)