编译表达式中的错误

时间:2013-03-13 23:20:45

标签: c#

所以我目前的代码中遇到了一个关于BMI计算器的小问题。我在这里搜索了其他BMI计算器主题,它们似乎都没有帮助我。请记住,我是ASP.Net的新手,还没有真正掌握任何东西!我被告知JS会让我的生活更轻松,但我必须在ASP.net中这样做。

对于BMI计算器,我使用的是英尺,英寸和磅的标准测量值。有三个文本框可以保存这些信息。对于我的代码的计算部分,我希望事件处理程序检查是否只在文本框中输入数值,然后计算个人BMI。然后计算结果应出现在标题为“结果”的第四个文本框中。以下代码就我所知。

//*************Event Handler for the calculation portion*****************

void calcUS_Click(object sender, EventArgs e)
{
    string Heightinfeet = heightus.Text;
    string Heightininches = heightus1.Text;
    string Weight = weightus.Text;

    double number;


    string bmi = resultus.Text;

    bool isHeightinfeet = Double.TryParse(Heightinfeet, out number);
    bool isHeightininches = Double.TryParse(Heightininches, out number);
    bool isWeight = Double.TryParse(Weight, out number);


    if (isHeightinfeet && isHeightininches && isWeight)
    {
        bmi = (Weight / ((Heightinfeet * 12) + Heightininches)) * ((Heightinfeet * 12) + Heightininches))) * 703);
    }

    else
    {
        Response.Write("Please type a numeric value into each of the text boxes.");
    }
}
//*****************End of calculation Event Handler*******************

除了

的实际计算部分之外,一切似乎都在起作用
if (isHeightinfeet && isHeightininches && isWeight)
{
    bmi = (Weight / ((Heightinfeet * 12) + Heightininches)) * ((Heightinfeet * 12) + Heightininches))) * 703);
}

在上面的公式中,当我将鼠标悬停在“Heightinfeet”和“Heightininches”

上时,我得到“运算符”错误*“不能应用于'string'或'int'类型的操作数”

2 个答案:

答案 0 :(得分:0)

这是我无法进行的重构

int Heightinfeet;
double Heightininches;
double Weight;

if (int.TryParse(heightus.Text, out Heightinfeet) && 
    Double.TryParse(heightus1.Text, out Heightininches) && 
    Double.TryParse(weightus.Text, out Weight))
{
  bmi = (Weight / ((Heightinfeet * 12) + Heightininches)) * ((Heightinfeet * 12) + Heightininches))) * 703);
}

答案 1 :(得分:0)

是的,您无法对int进行“*”操作,在这种情况下,数字为“12”,字符串在这种情况下为Heightinfeet

所以你应该首先将字符串解析成int或double来使用。

(int.Parse(Heightinfeet) * 12)或者它是双(double.Parse(Heightinfeet) * 12)