Importante:

1-Como a maioria dos objetos de dados no Javascript o objeto número em ponto flutuante (primitivo) tem uma representação interna no Javascript.
Quando exibimos o conteúdo do elemento este é convertido para o formato aceito pelos humanos, ou seja, pelo idioma, configrações regionais, etc.
Portanto, um número em ponto flutuante vai ser formatado para exibição de maneira que represente dinheiro e isto poderá ocasionar erros quando a formatação do JavaScript é diferente da formatação do browser.



Importante

1-O número em ponto flutuante no JavaScript é representado no formato inglês.

Padrão-Exibindo uma variável com ponto decimal flutuante

Script:
var a;
a = 1234.5678;
document.write(a);


Funcionamento:


Podemos notar que o ponto flutuante não foi exibido como dinheiro.



Melhor método 1 - Pelo Locale

O Locale formata o dado de acordo com as configurações regionais do equipamento do cliente.

Script:
document.write(a.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }));

Funcionamento:


Podemos notar que o ponto flutuante foi exibido corretamente como dinheiro, COM o cifrão, com separadores de milhar e arredondando os centavos.



Melhor método 2 - Pelo Locale

Vamos retirar o R$ (cifrão) da formatação.

Script:
document.write(a.toLocaleString('pt-BR', { maximumFractionDigits: 2 }));

Funcionamento:


Podemos notar que o ponto flutuante foi exibido corretamente como dinheiro, SEM o cifrão, com separadores de milhar e arredondando os centavos.