Suma con formato decimal

Seguro ya aburro pero tengo una problema extraño. Tengo este código en un botón:
Protected Sub Button14_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button14.Click
Dim total2 As Integer
total2 = CInt(Me.TextBox34.Text) + CInt(Me.TextBox35.Text) + CInt(Me.TextBox36.Text) + CInt(Me.TextBox37.Text) + CInt(Me.TextBox38.Text) + CInt(Me.TextBox39.Text) + CInt(Me.TextBox40.Text)
TextBox41.Text = FormatNumber(total2, 2)
Dim total3 As Decimal
total3 = CDec(Me.TextBox42.Text) + CDec(Me.TextBox43.Text) + CDec(Me.TextBox44.Text) + CDec(Me.TextBox45.Text) + CDec(Me.TextBox46.Text)
TextBox47.Text = FormatNumber(total3, 2)
TextBox48.Text = CInt(TextBox41.Text) + CInt(TextBox47.Text)
Dim indicador1 As Decimal
Dim indicador2 As Decimal
indicador1 = CType(Session("productos"), Decimal) / CDec(TextBox48.Text)
indicador2 = CType(Session("empleados"), Decimal) / CDec(TextBox48.Text)
Label4.Text = FormatNumber(indicador1, 2)
Label5.Text = FormatNumber(indicador2, 2)
End Sub
El asunto es que en otros textbox escribo un número en formato decimal con punto (15.25) y me lo acepta, me lo guarda en la base de datos y todo bien. Pero en este caso, si pongo el numero con punto no lo respeta me lo deja como 1.525,00, si lo pongo con coma si lo pone bien.
Como ves, lo he hecho con integer y con decimal pero nada. Si no le pongo decimales funciona bien y lo guarda en la base de datos sin problema.

1 respuesta

Respuesta
1
Los números enteros no permiten decimales.
Para convertir de texto a Decimal yo te recomiendo que primero te asegures que el separador de decimales es una "coma" (con "punto" no vale) con un Replace y luego uses el método Parse:
Dim valorDecimal = Decimal.Parse(TextBox.Text.Replace(".",","))
De este modo te aseguras que, escriba lo que escriba el usuario en el TextBox (ya sea coma o punto) te lo convierta a decimal correctamente.
Para darle el toque final deberías comprobar con un validador que lo que se escribe en el TextBox es un número ya que si se escribe texto fallará.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas