COBOL - Funções intrínsecas - NUMVAL-C


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Funções intrínsecas - NUMVAL-C
Intrinsic functions - Enterprise COBOL for z/OS 6.3.0

A função NUMVAL-C retorna o valor numérico representado pela cadeia de caracteres alfanuméricos ou pela cadeia de caracteres nacional especificada como argument-1.
A função remove a sequência de moedas, se houver, e qualquer separador de agrupamento (vírgulas ou pontos) para produzir um valor numérico.

O tipo de função é numérico.

argument-1
Deve ser um literal alfanumérico, um literal nacional ou um item de dados da classe alfanumérica ou nacional da classe que contenha uma cadeia de caracteres em um dos seguintes formatos:

space
Uma sequência de um ou mais espaços.

cs
A sequência de um ou mais caracteres que formam o sinal de moeda.
No máximo, uma cópia dos caracteres especificados por cs pode ocorrer no argument-1.

digit
Uma sequência de um ou mais dígitos.
Se a opção do compilador ARITH (COMPAT) estiver em vigor, o número total de dígitos não deverá exceder 18.
Se a opção do compilador ARITH (EXTEND) estiver em vigor, o número total de dígitos não deverá exceder 31.

Se a cláusula DECIMAL-POINT IS COMMA for especificada no parágrafo SPECIAL-NAMES, as funções da vírgula e do ponto decimal no argument-1 serão revertidas.

argument-2
Especifica o valor da sequência da moeda.

As seguintes regras se aplicam:

  • O argument-2 deve ser especificado se o programa contiver mais de uma cláusula CURRENCY SIGN.
  • o argument-2 , se especificado, deve ser da mesma classe que o argument-1 .
  • o argument-2 não deve conter nenhum dos dígitos de 0 a 9, espaços à esquerda ou à direita ou qualquer um dos caracteres especiais '+', '-', '.' ou ','.
  • o argument-2 pode ter qualquer comprimento válido para um item de dados elementar ou de grupo da classe do argument-2 , incluindo zero.
  • A correspondência do argument-2 diferencia maiúsculas de minúsculas.
    Por exemplo, se você especificar o argument-2 como 'CHF', ele não corresponderá a 'ChF', 'chf' ou 'chF'.

Se o argument-2 não for especificado, o caractere usado para cs é o símbolo da moeda especificado para o programa.

O valor retornado é uma aproximação de ponto flutuante do valor numérico representado pelo argument-1 . A precisão do valor retornado depende da configuração da opção do compilador ARITH. Para obter detalhes, consulte Convertendo para número (NUMVAL, NUMVAL-C).

Exemplos: Desenvolvidos por DORNELLES Carlos Alberto

      *-----------------------------------------------------------------
       WORKING-STORAGE SECIOTN.
      *-----------------------------------------------------------------

       01  WS-AUXILIARES.  
           05  WS-ENTRADA                PIC X(021) VALUE SPACES. 
           05  WS-RESULTADO              PIC 9(018) VALUE ZEROES. 
  
      *-----------------------------------------------------------------
       PROCEDURE DIVISION. 
      *-----------------------------------------------------------------

      * sintaxe do comando   

           MOVE '123.456.123.567890   ' TO WS-ENTRADA
           COMPUTE WS-RESULTADO = FUNCTION NUMVAL-C (WS-ENTRADA)              
           DISPLAY 'FUNCTION NUMVAL-C  - ' WSS-RESULTADO  
   
      * Resultado: FUNCTION NUMVAL-C   -   000123456123567890    

           MOVE '  1234567890         ' TO WS-ENTRADA
           COMPUTE WS-RESULTADO = FUNCTION NUMVAL-C (WS-ENTRADA)              
           DISPLAY 'FUNCTION NUMVAL-C  - ' WSS-RESULTADO  
   
      * Resultado: FUNCTION NUMVAL-C   -   000000001234567890    

           MOVE '123.456.123,567890   ' TO WS-ENTRADA
           COMPUTE WS-RESULTADO = FUNCTION NUMVAL-C (WS-ENTRADA)              
           DISPLAY 'FUNCTION NUMVAL-C  - ' WSS-RESULTADO  
   
      * Resultado: FUNCTION NUMVAL-C   -   000000000123456124    

           MOVE '123.456.123,567890   ' TO WS-ENTRADA
           INSPECT WS-ENTRADA REPLACING ALL ',' BY '.' 
           COMPUTE WS-RESULTADO = FUNCTION NUMVAL-C (WS-ENTRADA)              
           DISPLAY 'FUNCTION NUMVAL-C  - ' WSS-RESULTADO  
   
      * Resultado: FUNCTION NUMVAL-C   -   000123456123567890    


© Copyright IBM Corp.