sábado, 10 de marzo de 2012

Redondear un numero en Visual Basic

Utilice la siguiente rutina para redondear un número. Le devolverá el número redondeado en formato
Double con tantos decimales como indique en el parámetro 'intCntDec'.
Public Function Redondear(dblnToR As Double, Optional intCntDec As Integer) As Double
Dim dblPot As Double
Dim dblF As Double
If dblnToR < 0 Then dblF = -0.5 Else: dblF = 0.5
dblPot = 10 ^ intCntDec
Redondear = Fix(dblnToR * dblPot * (1 + 1E-16) + dblF) / dblPot
End Function
y en el codigo del boton escriben esto:
Private Sub Command1_Click()
Text2.Text = Redondear(CDbl(Text1.Text))
End Sub
Como ven el parametro intCntDec es opcional asi que si no lo colocamos simplemente calcula el numero decimal al entero proximo como la figura de abajo:
pero si desearan redondear a una cierta cantidad de decimales tendrian que colocar otro textbox y cambiar el codigo en el procedimiento click del boton para que luzca asi:
y en el codigo del boton tendrian que hacer esto:
Private Sub Command1_Click()
Text3.Text = Redondear(CDbl(Text1.Text), CInt(Text2.Text))
End Sub
espero les sirva el codigo :)

6 comentarios:

  1. Hola master, y si queres que el redondeo sea automáticamente donde lo pondrías en el formulario?
    Saludo

    ResponderEliminar
    Respuestas
    1. Redondear Un Numero En Visual Basic ~ Buscamos Ser Diferentes >>>>> Download Now

      >>>>> Download Full

      Redondear Un Numero En Visual Basic ~ Buscamos Ser Diferentes >>>>> Download LINK

      >>>>> Download Now

      Redondear Un Numero En Visual Basic ~ Buscamos Ser Diferentes >>>>> Download Full

      >>>>> Download LINK sk

      Eliminar
  2. lo pondrias en el evento keypress que al presionar enter automaticamente lo redondee, para esto tendrias que poner asi If KeyAscii = 13 Then
    SendKeys "{Tab}", 'y dentro de aqui llamas a la funcion redondear y le das como parametro el text1.text y finalizas con True

    ResponderEliminar
  3. NO ENTIENDO LO PONGO COMO ME LO PIDES PERO NO FUNCIONA
    APARECE "ERRORES" X(

    ResponderEliminar
  4. muy bueno, copie y sirvio a la primera!!!

    ResponderEliminar
  5. claro, le hice una modificacion al if :-) le puse un endif

    ResponderEliminar