嗨,我想知道是否有任何已知的方法來擺脫數學公式中不必要的括號。我問這個問題的原因是我必須儘量減少這種公式長度如何擺脫數學表達式中不必要的括號
if((-if(([V].[6432])=0;0;(([V].[6432])-([V].[6445]))*(((([V].[6443]))/1000*([V].[6448])
+(([V].[6443]))*([V].[6449])+([V].[6450]))*(1-([V].[6446])))))=0;([V].[6428])*
((((([V].[6443]))/1000*([V].[6445])*([V].[6448])+(([V].[6443]))*([V].[6445])*
([V].[6449])+([V].[6445])*([V].[6450])))*(1-([V].[6446])));
它基本上是sql select語句的一部分。它不能超過255個字符,我不能修改產生這個公式的代碼(基本上是一個黑盒子;)) 正如你看到許多括號是無用的。沒有提到這樣的事實:
((a) * (b)) + (c) = a * b + c
所以我想保持操作的順序括號,乘除法,加/減法。
我在VB工作,但任何語言的解決方案將罰款。
編輯我發現了一個相反的問題(加括號的表達式)Question。
我真的認爲這可以在沒有大量解析的情況下完成。但似乎有些解析器會通過表達式並將其保存在表達式樹中,這是不可避免的。
謝謝基思。我會放棄它。 – Pawel 2009-06-30 13:01:53