Eu queria exibir um número com 2 casas decimais.
Eu pensei que poderia usar toPrecision(2)
em JavaScript.
No entanto, se o número for 0.05
, eu entendo 0.0500
. Eu prefiro que continue o mesmo.
Veja no JSbin .
Qual é a melhor maneira de fazer isso?
Posso pensar em codificar algumas soluções, mas imagino (espero) que algo assim esteja incorporado?
Você poderia fazer isso com a
toFixed
função, mas é um bug no IE . Se você deseja uma solução confiável, veja minha resposta aqui .fonte
float_num.toFixed(2);
fina funciona)Tente em
toFixed
vez detoPrecision
.fonte
Não sei como cheguei a essa pergunta, mas, mesmo depois de muitos anos desde que isso foi feito, gostaria de adicionar um método rápido e simples que sigo e nunca me decepcionou:
fonte
parseFloat()
ai Só deve ser usado se o número vier de uma string.function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }
A resposta está seguindo este link: http://www.jacklmoore.com/notes/rounding-in-javascript/
fonte
number.parseFloat(2)
funciona, mas retorna uma string.Se você deseja preservá-lo como um tipo de número, pode usar:
Math.round(number * 100) / 100
fonte
Você pode tentar misturar
Number()
etoFixed()
.Transforme seu número de destino em uma boa sequência com dígitos X e depois converta a sequência formatada em um número.
Number( (myVar).toFixed(2) )
Veja o exemplo abaixo:
fonte
e aqui está a sintaxe
O argumento digits é opcional e, por padrão, é 0. E o tipo de retorno é string, não number. Mas você pode convertê-lo em número usando
Também pode gerar exceções como
TypeError
,RangeError
Aqui estão todos os detalhes e compatibilidade no navegador.
fonte
fonte
Eu fiz essa função. Funciona bem, mas retorna string.
fonte