Redondeo de decimales


([N1] intelpric) #1

V7 no esta redondeando con la funcion round(#CAMPO1, ~DEC_RED@vMaestrosGestion.dat)

Tengo un campo numero precio de ventas , que se genera a partir de una utilidad % y quiero que valor que retorne este redondeado.

Ej:
Utilidad % =48.57
Precio: 519.99

Quiero redondear ese valor a : 520.00 de forma automatica .

La unica funcion que existe al parecer no esta funciondo


([N3] Paco) #2

Estoy empezando con v7 y a eso aún no he llegado. Pero normalmente los redondeos es siempre sobre los decimales, no sobre los enteros.

Un saludo.


([N1] donhoy) #3

Aparte del posible error en la función de redondeo... siempre se pueden usar los viejos algoritmos "de toda la vida".

"La parte entera de" ( 519.99 + 0.5 )
devuelve 520.00

Puede ser un buen sustituto hasta que "la cosa" funcione, si es que realmente no funciona.

Un saludo.


([N1] Pepeto) #4

Los redondeos creo que estan funcionando correctamente,

1. Hay que comprobar es el valor de la contante que imagino es = 2
2. El redondeo de 519.99 con 2 decimales es = 519.99, lo hagas como lo hagas
3. Para saber si redondea bien o mal, habria que saber cual es el valor del 3 decimal, 519.99x
4. La solucion de Donhoycar, es correcta dependiendo del uso que queramos hacer de esa cantidad.

un saludo
Jose Luis
http://www.ascsl.com


([N4] innovadb) #5

En este caso creo que sería suficiente con redondear a 1 decimal, aun que no lo he probado, 519.99 deberia ser 520.00. Si lo pruebas y te da 519.90 usa lo que te dice donhoycar.

Un saludo


([N1] intelpric) #6

Increible pero sierto de la unica forma que funciono bien fue asi : round(#PRECIO_VENT,0)

Lo intente de las formas que indicaron y funcionan algunas veces

La que indico en este pos es mas correcta , LA he probado y los resultados son los esperado en todos los casos.


([N1] Giuseppe::Komenco) #7

Eso te funciona porque quitando los decimales, te redondea al entero (sin decimales) más próximo, es decir, 520, no 520,00.

Es que, especificaste a qué valor querías llegar, pero no redondeando basándosoe en qué criterios (ajustando segundo decimal, ajustando al primero, sin decimales, etc...) ;)