leer los decimales

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • romario2
    Senior Member
    • abr
    • 233

    #1

    leer los decimales

    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
    Senior Member
    • oct
    • 144

    #2
    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.

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      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

      David Carballido Córdova

      Comentario

      • romario2
        Senior Member
        • abr
        • 233

        #4
        Gracias!

        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

        Comentario

        • DavidXD_XD
          Moderator
          • ago
          • 1255

          #5
          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
          David Carballido Córdova

          Comentario

          Trabajando...