saber si es numerico

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • MetalGod
    Senior Member
    • jun
    • 110

    #1

    saber si es numerico

    hola, mi consulta es esa, como saber si una variable string es numerica? porque tengo que hacer una distincion entre si es solo numero o si son letras, probe varias funciones y un metodo que encontre pero nada, espero me ayuden, gracias
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    Hola, revisa este post.

    Saludos.
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • MetalGod
      Senior Member
      • jun
      • 110

      #3
      con ese metodo que pone ahi como solucion no me anduvo, lo hice con esta funcion:


      CALL FUNCTION 'NUMERIC_CHECK'
      EXPORTING
      string_in = valor
      IMPORTING
      * string_out =
      htype = v_tipo
      EXCEPTIONS
      OTHERS = 1.

      IF v_tipo EQ 'NUMC'.
      "aca entra si la variable es numerica
      ELSE.
      ""
      ENDIF.

      igual gracias

      Comentario

      • nievesmp
        Member
        • abr
        • 95

        #4
        v_len = 12.
        v_pos = 0.
        DO v_len TIMES.
        p1 = variable+v_pos(sy-tabix).
        ADD 1 TO v_pos.

        IF p1 CO '0123456789'.
        paso = '0'.
        ELSE.
        paso = 'X'.
        ENDIF.
        ENDDO.
        *** Si es un número lo agrego a la tabla de órdenes secundarias
        IF paso = '0'.
        **** Variable Es numérica ****
        ENDIF.
        endif.

        Comentario

        • nievesmp
          Member
          • abr
          • 95

          #5
          Originalmente publicado por nievesmp
          v_len = 12.
          v_pos = 0.
          DO v_len TIMES.
          p1 = variable+v_pos(sy-tabix).
          ADD 1 TO v_pos.

          IF p1 CO '0123456789'.
          paso = '0'.
          ELSE.
          paso = 'X'.
          ENDIF.
          ENDDO.
          *** Si es un número lo agrego a la tabla de órdenes secundarias
          IF paso = '0'.
          **** Variable Es numérica ****
          ENDIF.
          endif.
          Esta rutina es mejorable, ya que puede ocurrir que el último caracter sea numérico, y considere toda la variable como tal.

          Para evitar esto, podría ser:
          v_len = 12.
          v_pos = 0.
          DO v_len TIMES.
          p1 = variable+v_pos(sy-tabix).
          ADD 1 TO v_pos.

          IF p1 CN '0123456789'.
          paso = 'x'.
          ENDIF.
          ENDDO.
          *** Si es un número lo agrego a la tabla de órdenes secundarias
          IF paso is initial.
          **** Variable Es numérica ****
          ENDIF.
          endif.

          Comentario

          Trabajando...