1

所以我在当前代码中遇到了一个关于 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”上时,出现“运算符“*”不能应用于“字符串”或“整数”类型的操作数的错误

4

2 回答 2

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);
}
于 2013-03-13T23:26:50.793 回答
0

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

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

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

于 2013-03-13T23:28:01.217 回答