Olá pessoal, tudo jóia?
Utilizo a seguinte função para trabalhar com valores monetários em meus fluxos:
function formatMoneyBR(number = null, currency = true) {
if (number === null || number === "") return;
const format = currency
? {
style: "currency",
currency: "BRL"
}
: {
minimumFractionDigits: 2
};
return Number(number).toLocaleString("pt-BR", format);
}
Um tanto semelhante até com o que @fadoaglauss indica aqui:
Porém em alguns pontos do meu fluxo, por exemplo, onde executo este script
function run(detalhesViagem, hotelInfo, responseChoiceHotel) {
...
//Valor retornado pela API: 29415.284210526323
detalhesViagem.valorTotal = formatMoneyBR(responseChoiceHotel.data.valor_atualizado)
//valor retornado pelo script R$ 29.415,28 (fora do blip)
return JSON.stringify(detalhesViagem)
}
O valor é formatado corretamente no script, mas o Blip printa ele com o separador decimal invertido, onde ponto (.) virá vírgula (,) e vice-versa.
Está imagem é de outro ponto do fluxo, por isso o valor diferente, mas veja que a situação se repete.