Que tal???, veran tengo un problema con VB.NET, estoy desarrollando una aplicacion que sume los digitos de una cifra por medio de un bucle, ya logre hacer que sume algunas cantidades, por ejemplo: 1234 = 10, 12345 = 15, hasta ahi todo va bien pero si coloco otros numeros como lo son: 123456 (que deberia ser igual a 21) o 370 (que deberia ser igual a 10) me pone el resultado con valores de mas (en lugar de 21 me pone 23 y en lugar de 10 me pone 11).
La cuestión es que necesito los resultados exactos porque debo hacer otras operaciones con ellos para comparar con algunas cifras que tengo.....el problema es de mi codigo o de VB.NET
Nota: He rectificado las operaciones "a mano" y los que deberian ser los resultados son correctos.
CODIGO:
Public Class Formulario
Dim n As String
Dim Digitos As Integer
Dim operacion As Integer
Dim suma As Integer
Private Sub Calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calcular.Click
n = Numero_ingresado.Text
Digitos = n.Length
Exponente.Text = Digitos
While n <> 0
suma = (suma) + operacion
operacion = n Mod 10
n = n / 10
End While
Resultado.Text = suma
If suma <> 0 Then suma = 0
End Sub
Private Sub Borrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Borrar.Click
Numero_ingresado.Text = ""
Resultado.Text = ""
Exponente.Text = "0"
suma = 0
End Sub
End Class
No lo entiendo.
A mi parecer está al revés. Donde pones
Creo que debería ser
Ya que sino estás sumando a "suma" el contenido de una variable (operación) que aún no has calculado.
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Estaba
Estaba por decir eso mismo...