Visual Basic - prolema con redondeo

Life is soft - evento anual de software empresarial
 
Vista:

prolema con redondeo

Publicado por james (149 intervenciones) el 22/08/2006 02:45:06
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
sin imagen de perfil

RE:prolema con redondeo

Publicado por Raúl Santiago (178 intervenciones) el 22/08/2006 15:54:50
Eso es lo que da al escalarlo como lo haces, ya qeu lo que estás haciendo es recortando la mantisa y por tanto perdiendo precisión, lo que puedes hacer es no recortarla, sino dejarla como está y solo hacer eso cuando quieras visualizar, pero esto lo haces en otra variable y así dejas toda la precisión en los numeros con los que calculas
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:prolema con redondeo

Publicado por cmgcharli (128 intervenciones) el 23/08/2006 17:33:15
Una forma que creo que funcionaria seria que el format con tres decimales oformat(m,###,###.000") de esta forma no te redondea en el segundo decimal y a continuación las siguientes instruccione
suma=mid(format(m,"###,###.000"),1,len(format(m,"###,###.000")-1))
ejemplo:
Dim suma As Variant
Dim c As Variant
Dim d As Variant
Dim m As Variant
c = 1150.385
d = 3026.38
m = c + d

suma = Mid(Format(m, "###,###.000"), 1, Len(Format(m, "###,###.000") - 1))
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