Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Redondear decimales

Estas en el tema de Redondear decimales en el foro de Visual Basic clásico en Foros del Web. hola, estoy creando un aplicacion para generar facturas y cuando ungreso la cantidad sin iva me aparcen decimales, txttotal1.Text = Val(txtventa.Text) * Val(txtretirar.Text) txtneto.Text = ...
  #1 (permalink)  
Antiguo 20/01/2011, 08:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 5 meses
Puntos: 0
Redondear decimales

hola, estoy creando un aplicacion para generar facturas y cuando ungreso la cantidad sin iva me aparcen decimales,

txttotal1.Text = Val(txtventa.Text) * Val(txtretirar.Text)
txtneto.Text = Val(txtneto) + Val(txttotal1.Text)
txtiva.Text = Val(txtneto.Text) * 19 / 100
txttotal.Text = Val(txtneto.Text) + Val(txtiva.Text)

en el txtiva me aparecen los decimales y lo que necesito es un codigo para redondear en numeros con decimal a enteros si alguien me puede ayudar se lo agredeseria.
  #2 (permalink)  
Antiguo 20/01/2011, 09:13
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Redondear decimales

Hola, lo que necesitas es la funcion Round que te permite redondear una cifra y decirle a cuantos decimales debe truncarla.

De todos modos, cuidado con el Round porque utiliza el denominado redondeo estadístico que no redondea siempre de la misma manera que el conocido redondeo matemático en el que del 0 al 4 es por menor y del 5 al 9 por mayor

En todo caso, puedes crearte en un módulo esta funcion para compartirla en todo el programa, yo la utilizo, no es mia, la baje de un foro, pero me funciona a la perfeccion.

Código vb:
Ver original
  1. Public Function Redondear(ByVal Cantidad As Currency, Optional Redondeo As Byte = 2) As Currency
  2.   Dim dblPot As Double
  3.   Dim dblF As Double
  4.   If Cantidad < 0 Then dblF = -0.5 Else dblF = 0.5
  5.   dblPot = 10 ^ Redondeo
  6.   Redondear = Fix(Cantidad * dblPot * (1 + 1E-16) + dblF) / dblPot
  7. End Function

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 20/01/2011, 10:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Redondear decimales

gracias, amigo
  #4 (permalink)  
Antiguo 20/01/2011, 13:42
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Redondear decimales

De nada, cualquier duda, por aqui andaremos.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:42.