#1
|
||||
|
||||
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?
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
Ya le probé y no me anda ...
El formato que estoy usando es "," separador de miles y "." separado decimal.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#5
|
|||
|
|||
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 ?
|
#6
|
||||
|
||||
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.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#7
|
|||
|
|||
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 |
#8
|
||||
|
||||
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ó . 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.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
Herramientas | Buscar en Tema |
Desplegado | |
|
|