Vb.net 创建BMI应用程序

Vb.net 创建BMI应用程序,vb.net,vba,visual-studio,Vb.net,Vba,Visual Studio,我正在尝试制作一个简单的BMI应用程序,我正在尝试获取它,这样当你输入你的体重和身高时,它就会计算出来 当然我会得到“从'String'到'Double'的隐式转换” 这里有一个陷阱:当我试图将字符串转换为文本时,它给了我它;但是现在它在第1行给了我一个错误,而我在那一行上只有Option Strict 所以我想知道我该如何使用正确的算法来解决这个问题?我刚开始使用VB.net,但现在我不明白我在做什么 我看了另一篇文章,奇怪的是,我还没学会Double.TryParse() 代码如下:

我正在尝试制作一个简单的BMI应用程序,我正在尝试获取它,这样当你输入你的体重和身高时,它就会计算出来

当然我会得到“从'String'到'Double'的隐式转换”

这里有一个陷阱:当我试图将字符串转换为文本时,它给了我它;但是现在它在第1行给了我一个错误,而我在那一行上只有Option Strict

所以我想知道我该如何使用正确的算法来解决这个问题?我刚开始使用VB.net,但现在我不明白我在做什么

我看了另一篇文章,奇怪的是,我还没学会Double.TryParse()

代码如下:

        Dim strbmi As String
    Dim strHeight As String
    Dim strweight As String
    Dim decbmi As Decimal


    strweight = txtWeight.Text
    strHeight = txtHeight.Text
    strbmi = lblBMI.Text

    If IsNumeric(txtHeight) Then
        strHeight = Convert.ToString(txtHeight.Text)
    End If
    If IsNumeric(txtHeight) Then
        strHeight = Convert.ToString(txtHeight.Text)
    End If
    If IsNumeric(txtWeight) Then
        strweight = Convert.ToString(txtWeight.Text)
    End If

    If decbmi <= 18.5 Then
        lblBMICategory.Text = "Underweight"
    ElseIf decbmi <= 25 Then
        lblBMICategory.Text = "Normal Weight"

    ElseIf decbmi <= 30 Then
        lblBMICategory.Text = "Overweight"
    ElseIf decbmi > 30 Then
        lblBMICategory.Text = "Obesity"
    End If
Dim strbmi作为字符串
像绳子一样暗淡的光线
作为字符串的Dim strweight
Dim decbmi为十进制
strweight=txtwweight.Text
strHeight=txtHeight.Text
strbmi=lblblbmi.Text
如果是数字(txtHeight),则
strHeight=Convert.ToString(txthheight.Text)
如果结束
如果是数字(txtHeight),则
strHeight=Convert.ToString(txthheight.Text)
如果结束
如果是数字(txtWeight),则
strweight=Convert.ToString(txtwweight.Text)
如果结束

如果decbmi那么,我相信你误解了一些概念。对于所有实际效果,字符串都是文本。您必须首先将其转换为数字(并捕获并处理可能出现的错误),然后进行计算。以下是我认为你应该做的:

Function BMI(strHeight As String, strweight As String) As String
    Dim dblHeight, dblWeight As Double
    If Not Double.TryParse(strHeight, dblHeight) Then Return "Invalid Entry: Height"
    If Not Double.TryParse(strweight, dblWeight) Then Return "Invalid Entry: Weight"
    Dim dblBMI = dblWeight / (dblHeight ^ 2)
    If dblBMI <= 18.5 Then
        Return "Underweight"
    ElseIf dblBMI <= 25 Then
        Return "Normal Weight"
    ElseIf dblBMI <= 30 Then
        Return "Overweight"
    Else
        Return "Obesity"
    End If
End Function
函数BMI(strHeight作为字符串,strweight作为字符串)作为字符串
尺寸Dblhweight,Dblhweight为双精度
如果不是Double.TryParse(strHeight,dblHeight),则返回“无效条目:高度”
如果不是Double.TryParse(strweight,dblWeight),则返回“无效条目:权重”
Dim dblBMI=dblWeight/(dblHeight^2)
如果dblBMI可能重复