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.