Usando um script e passando o input o do usuário como entrada, você pode formatar o valor em moeda em Real.
const run = (valor) => {
valor = parseFloat(valor).toFixed(2);
valor = valor.toString().replace(/\D/g,"");
valor = valor.toString().replace(/(\d)(\d{8})$/,"$1.$2");
valor = valor.toString().replace(/(\d)(\d{5})$/,"$1.$2");
valor = valor.toString().replace(/(\d)(\d{2})$/,"$1,$2");
return valor;
}
Essa forma encontrei nessa fonte: Formatar valor Float como moeda usando Jquery - Stack Overflow em Português
Realizei a pesquisa em jQuery, pois não estava conseguindo trabalhar com funcionalidade mais atuais no caso o Intl formato de moeda de acordo com o pais que desejar.
Ex.: valor 16 → 16,00 | 160.00 → 160,00 | 1600.56 → 1.600,56.
Obs.: caso você queira com o valor R$ na frente é só fazer uma concatenação na linha do return.
return R$ ${valor}
;
Lembre-se estou postando dessa forma, pois não estava funcionando usando assim toLocaleString e o Intl:
const run = (money) => {
const formatedMoney = parseFloat(money).toLocaleString('pt-br', { style: 'currency', currency: 'BRL' });
return R$ ${formatedMoney};
}