Hola amigos¡¡¡ tengo un problema con un double, estoy haciendo una aplicacion sencilla de convercion de centigrados a farhenheit y viceversa, pero cuando meto datos con punto decimal me calcula mal =S mi codigo es el siguiente:
Tengo 2 textbox y un boton, una variable global de la clase que es la que valida lo que se escribe en cada textbox
Código visual basic:
Ver original'Declaro Variables globales para la clase
Private objTextBox As TextBox = Nothing
Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
'Declaro variable
Dim douGrados As Double
Try
'Si se escribe en la caja de texto de Grados Centigrados
If (objTextBox Is txbGradosC) Then
douGrados = (CDbl(txbGradosC.Text)) * (9.0 / 5.0) + 32
'douGrados = Convert.ToDouble(txbGradosC.Text) * (9.0 / 5.0) + 32
txbGradosF.Text = String.Format("{0:F2}", douGrados) 'Muestro el resultado redondeado a 2 decimales
End If
'Si se escribe en la caja de texto de Grados Fahrenheit
If (objTextBox Is txbGradosF) Then
douGrados = (CDbl(txbGradosF.Text) - 32) * (5.0 / 9.0)
'douGrados = (Convert.ToDouble(txbGradosF.Text) - 32) * (5.0 / 9.0)
txbGradosC.Text = String.Format("{0:F2}", douGrados) 'Muestro el resultado redondeado a 2 decimales
End If
Catch ex As Exception
txbGradosC.Text = "0.00"
txbGradosF.Text = "32.00"
End Try
End Sub
Ahora, lo hago de dos formas (una esta comentada) convierto lo que contiene el textbox.text en un numero flotante que seria de tipo Double ---douGrados = (CDbl(txbGradosC.Text))--- y la otra forma ---douGrados = Convert.ToDouble(txbGradosC.Text)--- pero al imprimir el resultado de eso en la ventana de inmediato si yo meto un 15.5 en el textbox me arroja un 155.0 y con eso hace la operacion :S por lo tanto lo hace mal :S pero si yo meto un numero entero como un 15 sin problemas me da el resultado¡¡ =O
Ojala me puedan ayudar =) de antemano muchas gracias =)