SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Kev en Viernes 14 de Mayo de 2004, 19:10
-
Hola, quisiera que me ayuden con este problema que tengo, con unos datos al final uso la funcion round, pero este me devuelve un valor que no me lo esperaba, actualmente tengo el Visual Basic Profesional, y ademas le instale el Service Pack 5, ya casi terminaba el programa y por suerte me di cuenta, bueno les muestro un ejemplo:
'Omito declaraciones y demas vainas
Aux = 2,7
Aux = 2,7/100 '0.027
Aux = Aux * 17 '0.459
Aux = Round(Aux,1) 'Me devuelve 0.3 deberia devolverme 0.4
'Aqui les doy otro ejemplo solo con numeros
introduzco 99.89
(99.89/100) * 16 = 15.9824
Me devuelve 15.8 deberia devolverme 16
'Creo que doy muchas vueltas con el codigo, lo coloque asi solo para el ejemplo
Alguien ayudeme por favor, porque falla el Round, o sera necesario que realize una funcion que reemplaze al Round, alguien tiene alguna idea
Salu2
:hola: :comp: :hola:
-
Kev:
Creo que el problema que tienes es por el tipo de variable con que estas declarando aux, porque en el primer ejemplo que colocas en realidad te debería de dar 5, ni 4 ni 3.
Prueba con diferentes tipos de variables.
Si colocas aux=round(aux,1), le dices que después del punto tome 1 decimañ y al ser este el valor de 5 te toma el que sigue osea el valor de aux debe ser 5.
Espero te funcione.
Saludos
Juan Carlos
-
Hola Kev.
Round redondea 'hacia abajo', es decir 14,85 lo redondeará como 14,8 y 14,86 como 14,9.
Puedes utilizar la función Format: Format(14.85, "#,##0.0") devolverá 14,9
Imagino que ya lo has tenido en cuenta... el redondeo puede ser causa frecuente de errores en el importe total de por ejemplo una factura: en el caso de los euros, cada línea de factura debe calcularse multiplicando la cantidad por el precio redondeado con 3 decimales (en algunos casos a más) y el importe del total de la factura es la suma del importe de cada una de las líneas redondeada a 2.
Suerte.
-
Gracias por contestar, es verdad, tendria que dar 5.
Tomare en cuneta sus sugerencias, les comento como me fue.
Salu2
:hola: :comp: