Converte uma sequência de caracteres que contêm dígitos em um valor numérico.
Sintaxe
Val( < cString > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cString | caractere | Indica uma string que contém uma sequência de números a serem convertidos. | X |
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
nRet | numérico | Retorna um valor numérico. |
Observações
A string informada será analisada da esquerda para a direita, até o final da string ou até ser encontrado um caractere não numérico. Caso a string seja iniciada com um ou mais espaços em branco, estes serão ignorados até que seja encontrado o primeiro caractere significativo (não-espaço).
O primeiro caractere significativo pode ser um sinal de "+", ou um sinal de "-", para indicar respectivamente um número positivo ou negativo, ou qualquer dígito numérico. A partir do primeiro caractere significativo encontrado, são considerados significativos e válidos apenas os dígitos numéricos ou um "." (ponto), considerado como separador decimal.
Uma vez encontrado um separador decimal, são considerados válidos apenas dígitos numéricos. Caso seja encontrado qualquer caractere inválido ou fora de contexto da string durante a análise, a mesma é finalizada, sendo considerado o valor apurado até aquele momento.
Exemplos
#DEFINE CRLF Chr(13)+Chr(10) User Function val1() Local cMensagem := "" //+----------------------------------------------------------------------------+ //|Exemplifica o uso da função Val | //+----------------------------------------------------------------------------+ cMensagem += Str( Val( "-536870912.72057594037927936" ) ) + CRLF cMensagem += Str( Val( "-2" ) ) + CRLF cMensagem += Str( Val( "0.137438953472" ) ) + CRLF cMensagem += Str( Val( "512.67108864" ) ) + CRLF cMensagem += Str( Val( "+2048.1048576" ) ) //+----------------------------------------------------------------------------+ //|Apresenta uma mensagem com os resultados obtidos | //+----------------------------------------------------------------------------+ Return MsgInfo( cMensagem, "Exemplo do Val" )
Resultado do Exemplo
Abrangência
Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server