2010-08-01 67 views
1

我正在嘗試構建一個基於美國海軍周長公式計算男性或女性身體脂肪%的「簡單」web應用程序。我已經完成了大部分應用程序。但是,我無法弄清楚爲什麼我設置下面的公式的方式不起作用。其中兩個值在我的.cs文件中以紅色下劃線。Asp.net C#數學問題

我的公式:

TBBodyFat.Text = Convert.ToString(495/(1.0324-.19077(Math.Log(Convert.ToDouble(TBWaist.Text)-Convert.ToDouble(TBNeck.Text)))+.15456(Math.Log(Convert.ToDouble(TBHeight.Text))))); 

原始示例:

%Fat=495/(1.0324-.19077(log(abdomen-neck))+.15456(log(height)))-450  

彈出兩個下劃線值(0.19077和0.15456):

 
struct System.Double 
Represents a double-precision floating-point number. 

Error: 
Method name expected 
+0

Will A似乎有解決方案給你,但我必須建議,如果這是你的格式,而不僅僅是複製和粘貼的結果,那麼你可能要考慮不同的格式,使這樣的問題更明顯。可能在多行中突破此公式可能會使您稍後更輕鬆地調試問題。然後,我的編程通常不需要太複雜的數學運算,因此格式化這種方式可能就像爲那些經常需要處理這種類型的代碼的人提供一個分支。 – joshlrogers 2010-08-01 00:12:11

回答

6
TBBodyFat.Text = Convert.ToString(495/(1.0324-.19077* 
(Math.Log(Convert.ToDouble(TBWaist.Text)-Convert.ToDouble(TBNeck.Text)))+.15456* 
(Math.Log(Convert.ToDouble(TBHeight.Text))))); 

C#(不是我遇到的任何編程語言)不會將數字鄰接表示爲乘法!

+0

小於55秒!這很快;-) – Abel 2010-08-01 00:07:19

+0

8-) - 我試試!毫無疑問,有人會提出一種尊重代數約定的語言。 :) – 2010-08-01 00:08:25

+0

這總是最終成爲罪魁禍首的顯而易見的事情......就是這樣,它現在起作用。謝謝您的幫助!! – Chris 2010-08-01 05:25:46

4

那麼你需要使用「*」乘法。 加上我不知道C#是否允許」 0.123" 風格的數字文字,沒有前導0

嘗試:

TBBodyFat.Text = 
     Convert.ToString(495/ 
     (1.0324-0.19077*(Math.Log(Convert.ToDouble(TBWaist.Text)-Convert.ToDouble(TBNeck.Text)))+0.15456*(Math.Log(Convert.ToDouble(TBHeight.Text))))); 
+0

*「C#是否允許」.123「樣式數字文字」*「他們做的;-) – Abel 2010-08-01 00:10:39

+0

@Abel:謝謝:-) – Mau 2010-08-01 00:31:14

-1

戴上*而乘以像0.8 *(B-200)。如果你會直接放入.8(b-200)它會顯示錯誤的方法名稱的預期。