2010-08-01 69 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)它会显示错误的方法名称的预期。