Visual Basic para Aplicaciones - problema con redondeo

Life is soft - evento anual de software empresarial
 
Vista:

problema con redondeo

Publicado por james (14 intervenciones) el 22/08/2006 02:46:52
Hola amigos foristas tengo el siguiente problema :

a=text1.text
b=text2.text
c=text4.text

m=a*b
text3.text=format(m,"###,###.00") // esta opcion me permite redondear a dos decimales
// hasta ahi toddo bien
suma=c+m // aca es donde se presenta el problema
por ejemplo:

a=1100.5
b=2.75
m=1100.5*2.75
m=3026.375 // como yo deseo a dos decimales y redondeado
// pongo el format(m,"###,###.00")
// dando como resultado
m=3026.38 //ok

perooooooooooooooo:

c=1150.385
suma=1150.385+3026.38
suma=4176.765 // ERRRRRRRRORRRRRRRR YO NO DESEO K SALGUE ASI
// SINO DE ESTA FORMA
SUMA=4176.77 // SIN REDONDEARRR, SI LE PONGO EL format (m,"###,###.00")
// LO REDONDEA YO NO QUIERO ESO SINO:

SUMA=4175.76 // ASI DEBERIA SER, sin redondear

AYUDENME POR FAVOR , GRACIAS
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:problema con redondeo

Publicado por JuanC (243 intervenciones) el 23/08/2006 02:14:28
NO queda muy claro...

Fijate si esta función te sirve...

Function Round(ByVal dArgument As Double, ByVal iPrecision As Integer, Optional bNegativeUp As Boolean = True) As Double
Dim dX#
On Error Resume Next
dX = 1#
If iPrecision >= 0 Then
While iPrecision
dX = dX * 10#
iPrecision = iPrecision - 1
Wend
Else
While iPrecision
dX = dX / 10#
iPrecision = iPrecision - 1
Wend
End If

Round = IIf(bNegativeUp, Int(dArgument * dX + 0.5) / dX, Fix(dArgument * dX + 0.5) / dX)
End Function

Saludos desde Baires, JuanC
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