GeneXus - Redondear

   
Vista:

Redondear

Publicado por Chaly (54 intervenciones) el 18/05/2011 23:54:23
Estimados:

Necesito Redondear cifras siguiendo la siguiente lógica, para mejor entendimiento pongo ejemplos concretos:

Si el valor resultantes es 0.16, el redondeo debe ser 1
si es 0.09 el redondeo debe ser 1
si es 1.01 el redondeo debe ser 2
si es 1.16 el redondeo debe ser 2
si es 1.99 el redondeo debe ser 2
y asi sucesivamente, intente con la funcion int y round y no tengo resultados, en los casos 1 y 2.

agradecería mucho vuestro consejo.

saludos

Chaly
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

Redondear

Publicado por Julio (301 intervenciones) el 19/05/2011 02:48:19
El valor del redondeo dependerá del número de decimales al que se quiere redondear (reducir).
Si nos dices a cuantos decimales quieres redondear te diremos exactamente las resultantes.

Si redondeas 0.16 con cero decimales te quedará cero, para que te quede uno tu número debería ser >= 0.50
Si 0.16 redondeas a dos decimales te quedará el mismo valor

Redondear un número quiere decir reducir el número de cifras manteniendo un valor parecido. El resultado es menos exacto, pero más fácil de usar.

Saludos
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

Redondear

Publicado por Chaly (54 intervenciones) el 22/05/2011 15:28:23
Julio:

En realidad el resultado final, debe expresarse siempre en numeros enteros, 1,2,3,4,5,6,7....), por eso ponía que por ejemplo si mi calculo matematico me arrojaba 0,10, o 0,56, el redodendo debe asumir el valor entero inmediato superior.

Espero este mas claro, gracias de todas formas por la colaboración,

Chaly
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

Redondear

Publicado por Luis (47 intervenciones) el 23/05/2011 17:09:17
Creo que no hay funcion que haga especificamente lo que pedis en GX. Podes hacer un procedimiento que te devuelva el numero redondeado a mano.

//&Nume es tu valor 1.01 con decimales que queres llevar al entero superior
//&NumeResultado es lo que devuelve el procedimiento

If Int(&Nume) = &nume
else
&Nume = &Nume + 1
&NumeResultado = Int(&Nume)
endif

Entonces al procedimiento le pasas el parametro &Nume y te devuelve &NumeResultado con el valor que vos queres. Espero te sirva! Saludos!
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

Redondear

Publicado por Chaly (54 intervenciones) el 29/05/2011 13:27:53
Luis:

Gracias por tu colaboración, ya mismo lo pruebo,

Saludos,

Chaly
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