Visual Basic - Redondear un numero

Life is soft - evento anual de software empresarial
 
Vista:

Redondear un numero

Publicado por Mauro (65 intervenciones) el 19/05/2006 19:40:47
Hola a todos, tengo el siguiente codigo en el evento lostfocus de un textbox:
Private Sub TxtImporte_LostFocus()
Dim Importe As Double
Dim Neto As Double
If CbTipo.ListIndex = 0 Then
Importe = 0
Neto = 0
Importe = (TxtImporte.Text * 0.5 / 100) * (21 / 100)
Neto = TxtImporte.Text - Importe
TxtNeto.Text = Format(Neto, "#####.00")
Exit Sub
Else
TxtNeto.Text = TxtImporte.Text
End If
End Sub

Supuestamente si ingreso un valor 10 en el txtimporte, el resultado que me tiene que devolver esa formula es de 9,9895..., y el txtneto me toma como valor 9,99, como puedo hacer o alguien conoce alguna forma de que me tome en vez de 9,99 que sea 9,98, alguien me puede decir como solucionar eso.

Gracias de antemano.

Mauro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Redondear un numero

Publicado por Panchito (17 intervenciones) el 19/05/2006 23:34:17
el redondeo siempre es si es mas de cinco hacia arriba y si es menos hacia abajo, si lo que quieres es que siempre sea para abajo le pones menos una centesima al resultado con un IF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Redondear un numero

Publicado por Edwin (303 intervenciones) el 20/05/2006 21:50:11
Usa la funcion round

Round(numero,0)

Eso es todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondear un numero

Publicado por Panchito (17 intervenciones) el 21/05/2006 12:35:39
Tampoco vale Round! El redondeo lo hace igual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondear un numero

Publicado por Jeronimo (49 intervenciones) el 21/05/2006 15:18:32
Hola!
No me parece la solución más ortodoxa ;) pero te puede servir.

Private Sub TxtImporte_LostFocus()
Dim Importe As Double
Dim Neto As Double
Dim Coma as byte 'Esto lo usás para ver si el número es decimal o entero.
If CbTipo.ListIndex = 0 Then
Importe = 0
Neto = 0
Importe = (TxtImporte.Text * 0.5 / 100) * (21 / 100)
Neto = TxtImporte.Text - Importe
'TxtNeto.Text = Format(Neto, "#####.00")
'En vez de la línea anterior ponés así:
Coma = InStr(1, Neto, ",")
If coma > 0 Then
Neto = Mid$(Neto, 1, coma + 2)
End If
TxtNeto.Text = Neto
Exit Sub
Else
TxtNeto.Text = TxtImporte.Text
End If
End Sub

Te repito: no es lo mejor pero es lo que se me ocurrió. Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar