Pregunta: | 57856 - ERROR EN FUNCION INTEGER |
Autor: | Susana Llaguno |
Tengo la siguiente fórmula para truncar a dos decimales imp_truncado=int(importe)+(int((importe-int(importe))*100)/100) como función dentro de un formulario en Visual Fox 6.0. En algunas ocasiones me resta un centavo. Por ejemplo 8569.47 me da como resultado 8569.46 Si corro la misma fórmula en el área de comandos me da el resultado correcto, pero ya dentro del formulario me resta el centavo. Descompuse la fórmula en partes de la siguientes manera: x=importe entero=int(x) && entero=8569 decimales=x - entero && decimales=8569.47 - 8569 = 0.47 ent_dec=decimales * 100 && ent_dec= 0.47 * 100 = 47 fraccion=int(ent_dec) && fraccion=int(47) = 46 (error) conv_dec=fraccion / 100 && conv_dec=46 / 100 = .46 final=entero+conv_dec && final=8569 + 0.46 = 8569.46 y el error da cuando calculo la variable 'fraccion'. No siempre pasa, solo en algunos casos, en un reporte de 82 cálculos solo uno me da incorrecto. Probé con la función FLOOR y también me da error. y=FLOOR(ent_dec) && y=46 Si alguien tiene idea de lo que ocurre le agradecería me lo haga saber. |