Cambiar tipo de vble

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • bealoal
    Senior Member
    • ene
    • 123

    #1

    Cambiar tipo de vble

    Hola!
    Estoy intentando convertir una vble de tipo char a tipo decimal. Sería por ejemplo pasar de CHAR = 31,87 a DECIMAL = 31,87. Alguien sabe como hacer esta conversión?

    Gracias.
  • felipe.carrales
    Junior Member
    • may
    • 4

    #2
    Se puede asignar directamente de una variable char a una de tipo numerico
    ejemplo
    data : var1(10) type n,
    var2(10) type c value '256748'.

    move var2 to var1.
    write : / var1,
    / var2.

    o puedes usar la funcion MOVE_CHAR_TO_NUM
    ejemplo
    codeDATA: lv_chr(4) type c,
    lv_num type p.

    CALL FUNCTION 'MOVE_CHAR_TO_NUM'
    EXPORTING
    CHR = lv_chr
    IMPORTING
    NUM = lv_num
    EXCEPTIONS
    CONVT_NO_NUMBER = 1
    CONVT_OVERFLOW = 2
    OTHERS = 3.
    IF SY-SUBRC 0.


    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


    saludos.

    Comentario

    • bealoal
      Senior Member
      • ene
      • 123

      #3
      Como pasar de type f a type p decimals X

      Hola!!
      el problema es que no estoy trabajando con numeros enteros, es con decimales. Conseguí pasar de tipo char a tipo f con la función
      CALL FUNCTION 'CHAR_FLTP_CONVERSION' el problema es que ahora me visualiza el dato de esta manera 7,968E-1 en vez de 0,7968 que es lo que yo quiero.

      Alguien sabe como puedo pasar de tipo f a tipo p con 4 5 decimales por ejemplo?

      Comentario

      • francesc
        Member
        • mar
        • 58

        #4
        Con lo que te devuelve la función en el campo flstr lo mueves a una variable tipo p con los decimales que quieras:

        data gv_p TYPE p decimals 4.

        .....

        gv_p = flstr.

        Comentario

        • bealoal
          Senior Member
          • ene
          • 123

          #5
          Muchas gracias. Me funcionó.

          Comentario

          Trabajando...