Cambiar separador decimal a un importe (puntos o comas)

31 10 2007

Generalmente entre distintas computadoras el separador decimal de un importe puede variar. Puede ser un punto o una coma, por ejemplo 100.60 o bien 100,60 .
Como no sabemos qué configuración tiene el sistema donde se va a ejecutar nuestro programa, con lo siguiente vamos a poder poner el separador decimal correcto automáticamente.


DATA: FORMATO_DEC LIKE USR01-DCPFM.

*Obtenemos el formato decimal del sistema en la variable FORMATO_DEC
   SELECT SINGLE DCPFM
     INTO FORMATO_DEC
     FROM USR01
     WHERE BNAME = SY-UNAME.

*Cambiamos el separador decimal a la variable de importe (LV_DMBTR)
   CASE FORMATO_DEC.
     WHEN ‘ ‘. “Coma Decimal
      REPLACE ‘.’ IN LV_DMBTR WITH ‘,’.
     WHEN ‘X’. “Punto Decimal
      REPLACE ‘,’ IN LV_DMBTR WITH ‘.’.
   ENDCASE.


Technorati tags:


Acciones

Information

8 responses

3 12 2007
Anónimo

35x(7,5-2,5)= respuesta

4 12 2007
Daniel Panaro

Lo que describí arriba sirve unicamente para cambiar el separador decimal, un punto o una coma, a un importe.

Es decir declaramos una variable de tipo importe, por ej:
LV_DMBTR like bsid-dmbtr.

Luego hacemos el cálculo que necesitamos
LV_DMBTR = 35 x ( 7,5 – 2,5 ).

Al resultado de ese cálculo le cambiamos el separador decimal según la configuración del sistema. Primero hacemos el SELECT y luego el CASE donde pasamos nuestra variable LV_DMBTR.

Saludos!

30 11 2008
alvaro

quiero saber los pasos para pasar de coma a punot en una cifra con decimales

30 11 2008
Daniel Panaro

Que tal Alvaro, para simplemente reemplazar coma por punto. Con esto alcanza:
REPLACE ‘,’ IN LV_DMBTR WITH ‘.’.
Donde LV_DMBTR es la variable donde tenés la cifra.
Saludos,
Daniel.

13 01 2010
JR D´J

quisiera preguntar como quito decimales de la derecha en SAP, cuando ya tengo hacientos contables.

2 02 2011
Daniel Panaro

Una forma sencilla es hacer un REPLACE del separador decimal por un espacio en blanco. Y luego hacer un CONDENSE para eliminar el blanco.

27 01 2011
Actividades fin de semana

como convierto un numero con decimal, en una maneda que no tiene decimales.

2 02 2011
Daniel Panaro

Lo mismo que antes. Hacer un REPLACE del separador decimal por un espacio en blanco. Y luego hacer un CONDENSE para eliminar el blanco.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: