¿Como hacer que una funcion me devuelva un valor en visual basic?

publicado por: Anonymous

¿Alguien me puede decir por qué esto no devuelve valor?
Le paso

Public Class Form1

Dim peso As Integer
Dim altura As Integer
Dim imc As Integer

Private Sub Calcular_Click(sender As System.Object, e As System.EventArgs) Handles Calcular.Click
    peso = PesoBox.Text
    altura = AlturaBox.Text

    Resultado.Text = calcularimc(peso, altura, imc)

End Sub

Function calcularimc(ByVal peso As Integer, ByVal altura As Integer, ByVal imc As Integer) As Integer

    imc = peso / (altura) ^ 2

    Return imc
End Function


End Class

solución

El problema es que tu función devuelve un Integer. El cálculo que haces probablemente tiene como valor un decimal entre 0 y 1, que al convertirse en Integer da como resultado 0.Asi debe quedar tu función:

Function calcularimc(ByVal peso As Integer, ByVal altura As Integer) As Double
    Dim imc As Double = peso / (altura) ^ 2
    Return imc
End Function

Como ves he eliminado también de la función el parámetro imc, ya que no tiene sentido. Para llamarlo, simplemente:

Resultado.Text = calcularimc(peso, altura)
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *