MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Error en resultado al multiplicar. (foro/showthread.php?t=45016)

DCErick 30/08/11 23:01:49

Error en resultado al multiplicar.
 

Tengo esa operación la cual tengo que dividir el resultado entre 1000 porque me está regresando resultados raros.

Ejemplo

Valor_ini = 10.000 * 1.13 = <- Con esos datos en lugar de regresarme 11.30 me regresa 11300.00.

¿Alguna idea?

jtristan 31/08/11 06:12:14

Hola DcErick,

ya sé que es una bobada, pero no se me ocurre otra cosa. Podría ser que en el valor 10.000, el punto lo esté interpretando como millares y no decimales. Podrías probar a que te devuelva la parte decimal, por ver qué parte decimal está cogiendo de ese valor.

Un saludo.

daniel1050 31/08/11 11:58:59



Seguramente lo mas posible es como te dijo jtristan, que tenga que ver con el formato de separacion de decimales que estas utilizando.

Fijate de convertir si queres cada nro al formato correcto antes de hacer la cuenta.

tendrias que hacer algo asi como te pongo en el ejemplo de abajo, aplicandolo para ambas variables la del 10.000 y la del 1.13 .


La idea es primero fijarse en que formato estas trabajando , luego convertir las variables que contienen los nros a su formato y por ultimo realizar la operacion.

DATA: v_importe_actual TYPE bseg-wrbtr.


*Obtengo el formato decimal del sistema en la variable FORMATO_DEC
SELECT SINGLE dcpfm
INTO formato_dec
FROM usr01
WHERE bname = sy-uname.

DATA: v_separador_decimal TYPE c.
DATA: v_separador_miles TYPE c.

CASE formato_dec.
WHEN ' '. " Coma decimal.
v_separador_decimal = ','.
v_separador_miles = '.'.
WHEN 'X'.
v_separador_decimal = '.'.
v_separador_miles = ','.
WHEN 'Y'.
v_separador_decimal = ','.
v_separador_miles = ' '.
ENDCASE.

CLEAR v_importe_actual.

* En esta funcion convertis el importe al formato correcto
CALL FUNCTION 'HRCM_STRING_TO_AMOUNT_CONVERT'
EXPORTING
string = t_input-wrbtr
decimal_separator = v_separador_decimal
thousands_separator = v_separador_miles
waers = 'INR'
IMPORTING
betrg = v_importe_actual
EXCEPTIONS
convert_error = 1
OTHERS = 2.

DCErick 31/08/11 14:12:05

Ya le probé y no me anda :(...

El formato que estoy usando es "," separador de miles y "." separado decimal.:o

daniel1050 31/08/11 14:29:06

Y si el campo bestand-anfmenge lo pasas a una variable auxiliar que sea del tipo mbew-salk3 en vez de tipo p antes de realizar la operacion ?

DCErick 31/08/11 15:09:00


jejeej Tambien lo intenté, lo que intento hacer es multiplicar una cantidad(stock) por un precio en este caso es el precio variable, ya lo solucioné al final hice lo que hace la MB52: Dividir el valor total / el stock total obteniendo así el factor.


Código MB52:

Algo que pude notar al momento de "debuguear" factor toma el valor " 1.2880001628942013E+00" y el campo VERPR al pasarlo a una variable auxiliar tomaba el valor "1.2880000000000000E+03"
En la MM03 el campo VERPR tiene el valor de 12.88.

Bueno gracias a todos por su ayuda.:D

Mauricio Hidalgo 01/09/11 19:28:04

Estimado hice lo siguiente:

data valor_ini LIKE mbew-salk3.
data ANFMENGE TYPE P DECIMALS 3.
data VERPR LIKE MBEW-VERPR.

anfmenge = '10.000'.
verpr = '1.13'.
valor_ini = anfmenge * verpr.

write valor_ini.

*************************
Si su programa en sus atributos (Menu Pasar\Atributos) no tiene chequeado la opción "Cálculo de coma Fija"....le va a dar el valor que incialmente indicabas. Pero si lo marcas entonces si te hará correctamente el cálculo.

Saludos

DCErick 01/09/11 20:10:23


Horale, eso no lo probé igual ya quedó con lo que hice con lo que hice en una oportunidad marco ese check y hago el calculo directo, por lo pronto dejemos al usuario feliz con lo que se le entregó :D.
Lo que ya verifiqué es que el reporte no tiene marcada esa opción, veo que al crear un reporte ese check sale marcado por default, en mi caso estoy haciendo una copia de la MB5B y el reporte no tiene marcado ese check.

Gracias.


Husos Horarios son GMT. La hora en este momento es 09:22:23.

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