Val em ADVPL — Como Converter String para Numérico

Tempo de leitura: 3 minutos

Você já passou pela situação de tentar realizar um cálculo matemático no Protheus e receber um erro de “type mismatch” porque um dos valores estava como caractere? Esse é um cenário extremamente comum, especialmente quando lemos dados de arquivos externos, APIs ou campos de texto. A função Val em ADVPL é a ferramenta nativa e essencial para resolver esse problema, permitindo a conversão direta de strings em valores numéricos. Dominar essa função é um passo obrigatório para quem está explorando os Fundamentos do ADVPL.

Neste guia completo, vamos mergulhar na sintaxe da função Val, entender como ela trata caracteres não numéricos e ver exemplos práticos de como utilizá-la em conjunto com outras funções de Conversão de Dados para garantir a integridade das suas rotinas customizadas.

 

O que é a função Val e para que serve?

A função Val em ADVPL tem como única finalidade transformar uma string que contém números em uma variável do tipo numérico. Isso é fundamental porque, na linguagem ADVPL, você não pode realizar operações aritméticas (soma, subtração, etc.) diretamente em variáveis do tipo caractere.

🚀 Quer evoluir no ADVPL de verdade?

Receba conteúdos práticos, códigos prontos e dicas que você 

 não aprende na documentação oficial

✔ Funções essenciais do ADVPL
✔ Exemplos reais usados no Protheus
✔ Dicas de debug e performance

🔐 Seu email está seguro. Sem spam.


Sintaxe:

Val(cString)

 

Argumento(s):

 

Retorno:

 

Exemplo:

No exemplo abaixo utilizamos a função Val e informamos como parâmetro à função o valor String “100” e o retorno é um numérico do número 100.

 

Exemplo em da função Val em ADVPL:

#include 'protheus.ch'
/*{Protheus.doc} User Function fVal
    (Essa função tem por finalidade mostrar a função de Conversões de Tipos de Dados Val em ADVPL)
    @type  Function
    @author Adilio Costa
    @since 09/07/2023
    @?version 1.0
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/

|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|

*/
User Function fVal()

	Local cNum := "100"
	Local nNum := Val(cNum)

	MsgInfo("Variável String convertida em numérica usando a função Val:"+cValToChar(nNum),"Usando a função Val")

Return

 
Exemplo da função Val em ADVPL
  • Boas Práticas na Conversão de Dados

    Ao utilizar a função Val, é uma boa prática garantir que a string não possua espaços indesejados ou caracteres especiais que possam truncar o valor. Por isso, é muito comum vermos a combinação de funções como:

     

    nValor := Val( AllTrim( cString ) )

     

    Isso garante que qualquer espaço em branco ao redor do número seja removido antes da conversão, evitando retornos inesperados em campos de formulários ou arquivos de integração.

     

     

     

    Domine o Desenvolvimento Protheus

    Para dominar este conceito em cenários complexos, com aulas em vídeo e suporte especializado, conheça o Portal ProtheusAdvpl. Lá, exploramos a fundo a arquitetura por trás desta função e suas aplicações em grandes projetos de integração e desenvolvimento de módulos.

     

    Cursos Recomendados:

     

    Conclusão

    A função Val em ADVPL é um dos pilares da manipulação de dados no Protheus. Sem ela, a comunicação entre interfaces de texto e motores de cálculo seria impossível. Ao entender como converter strings para numéricos e vice-versa (usando a cValToChar), você ganha total controle sobre o fluxo de informações no seu ERP.

     

    Links de referência(s):

     

    Conteúdos relacionados

     
    🚀 Quer evoluir no ADVPL de verdade?

    Receba conteúdos práticos, códigos prontos e dicas que você 

     não aprende na documentação oficial

    ✔ Funções essenciais do ADVPL
    ✔ Exemplos reais usados no Protheus
    ✔ Dicas de debug e performance

    🔐 Seu email está seguro. Sem spam.
     
     
🚀 Quer dominar o Protheus de verdade?
Entre para o ProtheusAdvpl e receba conteúdos exclusivos sobre desenvolvimento, infraestrutura, módulos e carreira no Protheus

✔ Conteúdos organizados por categorias (Programação, Framework, Backoffice e RH)
✔ Dicas práticas usadas no dia a dia do Protheus
✔ Acesso a materiais, post e atualizações do Blog
🔐 Seu email está seguro. Sem spam. Só conteúdo profissional.