MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   problema de redondeo campo currency (foro/showthread.php?t=72346)

dayanareyes 20/08/14 15:23:49

problema de redondeo campo currency
 
hola, buenas tardes.

tengo un problema, tengo unos campos moneda que piden que los divida por 1000 (por un ajustes y nuevo tipo de moneda q están implantando en el cliente).

estoy usando este código tipo.

if VBRK-WAERK = 'EU5'.
if campo < 0.
campo = abs( campo / 1000 ) * ( -1 ).
ELSE.
campo = abs( campo / 1000 ).
ENDIF.
ENDIF.

esto lo use antes con el "abs" para q me pintara en un smartforms el valor sin redondearlo.

ahora aplico esto mismo en un programa y no me funciona, me redondea... y yo quiero el valor tal cual...

ejemplo:

tengo el campo wa_datos-impuesto (que es de tipo MWSBP CURR 13 2)


if wa_datos-impuesto < 0.
wa_datos-impuesto = ( wa_datos-impuesto / 1000 ) * ( -1 ).
ELSE.
wa_datos-impuesto = abs( wa_datos-impuesto / 1000 ).
endif.

el valor inicial de wa_datos-impuesto = 295.20
por lo que el valor tras la division deberia ser 0,29

PUES EL PORBLEMA ES QUE ME REDONDEA Y ME SACA 0,30 :confused: :mad:

ME PODÉIS AYUDAR???

GRACIAS....

acesar 21/08/14 11:30:05


Justamente son los decimales del campo...

295.20 / 1000 = 0.2952 pero como son 2 decimales 0.295 pasa a 0.30.
Si el resultado hubiese sido 0.294..., te hubiese quedado en 0.29.
El redondeo que hace es correcto.

Me parece que ante semejante división, necesital ponerle un decimal mas a wa_datos-impuesto....

La otra es hacer el calculo en una variable con mas decimales y luego aplicar alguna función que trunque (no que redondee) los decimales a dicha variable asignando el resultado a wa_datos-impuesto...

No se si existe dicha función...

La otra es ...

wa_datos-impuesto = ( trunc( wa_datos-impuesto / 10 ) * 10 ) / 1000 .

Seguro que hay otras opciones mas...

pero con todo esto vas a perder esos decimales que, sin conocer a fondo tu proceso, pueden darte un resultado incorrecto. Fijate si realmente está bien sacar esos valores...


Husos Horarios son GMT. La hora en este momento es 14:34:35.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web