2014-10-04 86 views
0

我試圖運行這個公式中NCalc:操作「/」不能應用於類型「小數」的操作數和「雙師型」 - NCalc

​​

我得到的錯誤:

Operator '/' can't be applied to operands of types 'decimal' and 'double' 

[a]和[b]參數作爲小數傳遞。我試圖把 'M' 在2和100像這樣:

"(Abs([a] - [b])/(([a] + [b])/2m)) * 100m" 

但它拋出一個異常:

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

我跟着this question,但它並沒有幫助我。 codeplex上發佈的同一問題沒有答案。有任何想法嗎?

回答

1

可能的解決方法是通過2m爲參數,使其正常識別爲decimal值,例如:

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 
+0

@HenkHolterman不知道,但我認爲C#是可以接受的,因爲一個問題OP其次是關於純C#,而不是NCalc:「我跟着這個問題......」。並且'2m'爲我編譯並生成了一個結果(雖然沒有檢查計算結果是否正確) – har07 2014-10-04 08:58:03

相關問題