Erro "The template language function 'float' was invoked with a parameter that is not valid"
A função float converte texto em número, mas usa por padrão a notação americana: ponto decimal e vírgula como separador de milhar. Um valor brasileiro como '1.234,56' mistura os dois símbolos de um jeito que essa notação não aceita, e o fluxo para com...
A mensagem completa
The template language function 'float' was invoked with a parameter that is not valid. The value cannot be converted to the target type.
No histórico de execuções, essa mensagem aparece dentro de uma frase maior: Unable to process template language expressions in action 'NOME_DA_ACAO' inputs at line '0' and column '0': '...'. O nome da ação é o da ação que contém a expressão e muda de fluxo para fluxo. O trecho em destaque acima é o que identifica o problema.
O que significa
A função float converte texto em número, mas usa por padrão a notação americana: ponto decimal e vírgula como separador de milhar. Um valor brasileiro como '1.234,56' mistura os dois símbolos de um jeito que essa notação não aceita, e o fluxo para com InvalidTemplate. O caso traiçoeiro é o '1,5', que não dá erro e vira 15.
Causas mais comuns
- O texto está no padrão brasileiro, com ponto de milhar e vírgula decimal ('1.234,56').
- A cultura informada não combina com o texto: float('1.234,56', 'en-US') também falha.
- O valor veio com símbolo de moeda ('R$ 1.234,56'), espaços ou outros caracteres.
- O campo veio vazio ou com texto que não é número.
Como corrigir
- Informe a cultura do texto: float('1.234,56', 'pt-BR') devolve 1234.56.
- Se o texto traz 'R$' ou espaços, limpe com replace antes de converter.
- Cuidado com valores sem ponto de milhar: float('1,5') não falha, mas devolve 15, porque a vírgula é descartada. Use a cultura 'pt-BR' também nesse caso.
- Defina o formato na origem (por exemplo, sempre o padrão brasileiro) e documente, para que o fluxo não receba os dois formatos.
Exemplo: antes e depois
| Expressão | Resultado no Power Automate |
|---|---|
float('1.234,56') | Erro. The template language function 'float' was invoked with a parameter that is not valid. The value cannot be converted to the target type. |
float('1.234,56','pt-BR') | 1234.56 |
Os dois resultados vêm da execução real de 09/11/2026, e um teste automático do Me Ajuda Flow confere que o texto desta página é idêntico ao registrado.
Como evitar que o erro volte
- Veja o valor real: abra a execução e confira a entrada da ação que falhou, não só a expressão.
- Trate vazio e tipo antes de calcular: use
coalescepara vazio eintoufloatpara texto que parece número. - Confira a expressão antes de rodar: o analisador de fluxo e o verificador de expressões apontam parte desses problemas sem executar o fluxo.
Perguntas frequentes
float('1,5') dá erro?
Não. Em execução real, ele devolve 15, sem aviso. É pior que um erro, porque o fluxo segue com um valor errado. Use float('1,5', 'pt-BR') para obter 1.5.
Posso usar replace em vez da cultura?
Pode: replace(replace(texto, '.', ''), ',', '.') também funciona para o padrão brasileiro. A cultura é mais curta, mas a limpeza com replace serve quando o texto tem símbolos extras.