Power Builder - Truncate Vs. Round

   
Vista:
Imágen de perfil de Antonio

Truncate Vs. Round

Publicado por Antonio (1114 intervenciones) el 28/05/2015 06:53:27
Un saludo a todos...

necesito de su ayuda...

Resulta que hago una operación matematica y como resultado me debe dar con dos decimales, pero no logro hacer que el resultado sea el deseado.

ejemplo:

hago una venta por $ 300.00
doy un descuento del 5%
quito el iva antes del descuento
300 / 1.16 = 258.62
aplico el descuento antes del iva
258.62 * 0.05 = 12.93
quito el descuento
258.62 - 12.93 = 245.69
aplico el iva después del descuento
245.69 * 0.16 = 39.31
agrego el iva
245.69 + 39.31 = 285.00

lo anterior lo hice para comprobarlo en EXCEL
pero en PB el problema lo tengo cuando quito el iva, el resultado me da 258.63 cuando debe ser 258.62, ya verifique con los decimales a 4 dígitos y me da 258.6207 por lo que no debe redondear al quitarle dos dígitos, debe quedar como 258.62 en lugar de 258.63

Ya probe con ROUND(), TRUNCATE() y nada, no logro llegar a ese resultado y siempre me sobra un 0.01

¿Alguien sabe como hacer esta parte?

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
Imágen de perfil de Leonardo Daniel A.

Truncate Vs. Round

Publicado por Leonardo Daniel A. (75 intervenciones) el 28/05/2015 07:40:09
Hola amigo.... seguro seguro ??????

hace tiempo hice un sistema en Adobe Flex + php y en uno de los reportes me decian es que no me cuadran las sumas y yo preguntee porque ? dicen las decimales.... y me volvi loco buscando, declarando variables a 2 decimales y demas y todo seguia igual... hasta que me di cuenta que ellos hacian la suma en excel y las hace mal.... has el calculo con la calculadora y verz que si te da...

Lo que sucede con Excel que cuando tu le dices solo quiero 2 decimales, redondea la cifra, no va y quita el ultimo numero como en teoria deberia ser, si le digo 2 decimales, pues quiero 2 decimales, no lo muevas...

Ejemplo:
162.128 y ahora rebajalo a 2 decimales y obtendras magicamente 162.13 cuando deberia darte 162.12 o no ???


y tambien te recomiendo declarar las variables como decimal ejemplo

DECIMAL{2} venta. iva, decuento, subtotal,, total



espero que yo tenga razon jaja, suerte
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

Truncate Vs. Round

Publicado por Jorge (41 intervenciones) el 28/05/2015 17:06:12
Hola. Podrías colocar el script que realiza tu operación?

Leonardo, cuando se aumentan o disminuyen decimales es Excel SIEMPRE se usa redondeo.
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
Imágen de perfil de Antonio

Truncate Vs. Round

Publicado por Antonio (1114 intervenciones) el 28/05/2015 20:07:56
Hola Leonardo, hola Jorge...

Les doy mi agradecimiento por su apoyo...

El ejemplo que puse sobre el calculo en EXCEL es solo para indicar y comprobar que ahí si se da el resultado correcto, si bien es cierto lo que comentas Leonardo sobre lo que hace EXCEL, es porque los tres decimales que pones como ejemplo de 162.128, si se redondean porque el tercer digito de los decimales esta arriba del .005 por lo que automáticamente lo redondea.

Mi problema es que ese tercer digito en mis resultados, te pondré el mismo ejemplo que pusiste pero con otros decimales, no debe redondearlo.

Ejemplo:

162.122 así es como debe quedar, sin embargo, utilizando la función Round() o Truncate() en PowerBuilder, me arroja el resultado a 162.123... si observas, no debería irse a .123 debe quedarse en .122, por lo cual matemáticamente no es posible o no es conveniente redondearlo al siguiente numero porque no cumple con la famosa regla de .5

Ya que esa regla del 0.5 es... si es menor a 0.05 se debe dejar los decimales sin redondear pero si es >= 0.5 entonces si debe subir al siguiente numero.

Espero haberme explicado y reiterándoles mi agradecimiento por su tiempo y apoyo
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

Truncate Vs. Round

Publicado por elvitomhg (18 intervenciones) el 29/05/2015 16:32:22
Hola

Debemos recordar que Excel calcula con todos los decimales y que para mostrar la cifra con decimales utiliza los establecidos con la mascara y es la mascara la que redondea. por lo que los cálculos (*/+- y otros) los realiza con el valor completo de la celda. Eso me paso cuando la suma de chorrocientosmil celdas y tenia una diferencia de $1, la solución que encontré es utilizar la función redondear de Excel en cada función suma.

Yo comprendo que el resultado de PB es el verdadero y el de Excel es el equivocado en el caso del compañero.

En un caso en una ocasión para el calculo del 10% de la boleta de honorarios me presento ese problema y la solución que encontré fue sumarle 0.001 o 0.004 o algo por ahí (según los decimales que se quiera) ya que el calculo de SII calcula diferente.

Espero te sirva.

ElvitoMHG
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