[AutoHotkey v2] - Formatar números com ponto de milhar

Compartilhe seus scripts, funções, ferramentas e programas

Moderator: Gio

Post Reply
pedro45_vs
Posts: 39
Joined: 28 Jun 2020, 18:46

[AutoHotkey v2] - Formatar números com ponto de milhar

Post by pedro45_vs » 06 Feb 2023, 10:33

Estou há algum tempo utilizando a versão 2 da linguagem AutoHotkey. Agora que foi lançada a versão estável e ela terá prioridade no desenvolvimento, creio que é uma boa ideia começar a migrar ou pelo menos criar novos scripts utilizando essa versão.

Uma função que utilizo bastante é mostrar números em formato contábil com separador de milhar.

Code: Select all

#Requires AutoHotKey v2.0

; Retorna um número formatado com separador ponto milhar. 
; Entrada        => Número nativo AutoHotkey ou número no padrão brasileiro
; Casas decimais => Quantidade de casas decimais a ser exibidas, por padrão são duas
; Saida	         => String no formato brasileiro com ponto de milhar Ex 1.234,56

milhar(num:=0, dec:=2)
{
    ; Se não for um número nativo do AutoHotKey, será convertido e se for uma string vazia retornará 0
    if !(IsNumber(num))
        num := StrReplace(StrReplace(num ? num : 0, "."), ",", ".")

    ; Arredonda o número para a quantidade de casas decimais, converte para formato brasileiro e executa a RegEx de formatação
    Return RegExReplace(StrReplace(Round(num, dec), ".", ","), "\d(?=(\d{3})+(\D))", "$0.")
}

Post Reply

Return to “Scripts e Funções”