Validación de Números DecimalesCódigo en visual basic .net
Fecha: 03/09/2005 (31/08/2005)
|
Introducción
El siguiente código lo que realiza es la validación de números decimales de dos dígitos despues del punto decimal en una caja de texto, esta hecho en Visual Basic .Net pero lo puedes migrar a diferentes lenguajes ya que la logica seria la misma.
Para la explicacion del codigo usaremos un formulario con una caja de texto y una clase.
Dim clase As New Cls_ey Private SubTextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumero.KeyPress clase.NumeroDec(e, Me.TxtNumero) End SubCreamos una Clase, en nuestra aplicacion se usa la clase Cls_ey
Public Class Cls_ey Function NumeroDec(ByVal e As System.Windows.Forms.KeyPressEventArgs, ByVal Text As TextBox) As Integer Dim dig As Integer = Len(Text.Text & e.KeyChar) Dim a, esDecimal, NumDecimales As Integer Dim esDec As Boolean ' se verifica si es un digito o un punto If e.KeyChar.IsDigit(e.KeyChar) Or e.KeyChar = "." Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Return a Else e.Handled = True End If ' se verifica que el primer digito ingresado no sea un punto al seleccionar If Text.SelectedText <> "" Then If e.KeyChar = "." Then e.Handled = True Return a End If End If If dig = 1 And e.KeyChar = "." Then e.Handled = True Return a End If 'aqui se hace la verificacion cuando es seleccionado el valor del texto 'y no sea considerado como la adicion de un digito mas al valor ya contenido en el textbox If Text.SelectedText = "" Then ' aqui se hace el for para controlar que el numero sea de dos digitos - contadose a partir del punto decimal. For a = 0 To dig - 1 Dim car As String = CStr(Text.Text & e.KeyChar) If car.Substring(a, 1) = "." Then esDecimal = esDecimal + 1 esDec = True End If If esDec = True Then NumDecimales = NumDecimales + 1 End If ' aqui se controla los digitos a partir del punto numdecimales = 4 si es de dos decimales If NumDecimales >= 4 Or esDecimal >= 2 Then e.Handled = True End If Next End If End Function End Class
Espero les sea util en sus validaciones, si lo mejoran no olviden pasarme el dato. El codigo Completo esta adjunto en el link superior
EveYaquy°Huacho - Perú
Espacios de nombres usados en el código de este artículo:
System.Windows.Forms.Form
Fichero con el código de ejemplo: eveyaquy_decimal_vb.zip - Tamaño 23.0 KB