PDA

Ver la Versión Completa : leer los decimales


romario2
27/02/09, 08:35:47
Tengo que mostrar unos decimales en un concatenate.
No lo muestro ni con ALV ni con Write.

Quiero que los decimales se muestren solo en el caso que existan.
Por ejemplo:
1.00 __________1 _____No mostramos decimal!
1.55___________1.55

Ya he pensado el pseudocódigo:

SI valor lleva decimal (LEER DECIMAL)
no convertimos
sino
convertimos a entero
finsi.


La pregunta es cómo puedo leer los decimales?. Es decir, los 2 último digitos

Muchas gracias

ppchico
27/02/09, 12:32:08
Puedes hacer un SPLIT de la variable en dos nuevas variables es decir:

SPLIT variable_total AT '.' INTO valor_entero valor_decimal.

Con esto, si el valor es 1.001 tras el SPLIT tendrás

VALOR_ENTER0 = 1
VALOR_DECIMAL = 001

En este caso, solo tendrías que comprobar que el valor decimal contiene algún valor distinto de 0 es decir:

IF VALOR_DECIMAL CA '123456789'.

DEJAS LOS DECIMALES

ELSE.

ELIMINAS LOS DECIMALES.

ENDIF.

Cuidado con el formato de la COMA puede ser un '.' ó un ','. Y el tipo de datos para hacer el SPLIT tiene que ser CHAR, por lo que si lo tienes en un CURR deberás hacer un MOVE antes del SPLIT a una variable de caracter, y el campo del ALV a mostrar deberá ser de tipo CHAR, para poder eliminarlos para unos sí y otros no...

Suerte compañero.

DavidXD_XD
27/02/09, 14:12:33
Para eso hay 2 sentencias muy buenas, la primera es TRUNC, esa sentencia te indica la parte entera de un decimal, y la sentencia FRAC q te indica la parte decimal, aki un link muy bueno

http://help.sap.com/saphelp_nw04/Helpdata/EN/fc/eb3316358411d1829f0000e829fbfe/content.htm

romario2
03/03/09, 11:22:11
Muchas gracias compañeros,

al final lo hice con un split:

split l_num at '.' into l_1 l_2.

l_1 siempre contiene la parte entera

l_num sera el numero completo

l_2 los decimales:)

DavidXD_XD
03/03/09, 14:05:17
Holas ... solo para tener algo en consideracion por q facil t pueden agarrar x ahi, en el maestro de usuarios se configura la coma o punto decimal ... debes consultar primero el maestro de usuarios para ver q caracter usa como decimal y agregarlo al SPLIT ... slds :D