JavaScript: Arredondar um número para 2 casas decimais.

Este é um pequeno guia sobre como arredondar um número a 2 casas decimais usando JavaScript. No exemplo abaixo, também fornecerei uma alternativa JavaScript à função number_format do PHP.

Dê uma vista de olhos à função JavaScript personalizada abaixo:

/** * Custom JavaScript function that rounds a number w/ * decimal places. * * @param val - The value that you want to format with decimal places. * @param decimals - The number of decimal places that should be used. * @returns {float} */function number_format(val, decimals){ //Parse the value as a float value val = parseFloat(val); //Format the value w/ the specified number //of decimal places and return it. return val.toFixed(decimals);}

I nomeei esta função number_format porque esse é o nome de uma função popular do PHP que realiza uma operação semelhante.

A nossa função personalizada aceita dois parâmetros:

  • val: O número que queremos arredondar.
  • decimal: O número de decimais que o número deve ser arredondado para.

Dentro da nossa função, analisamos a variável val como um flutuador utilizando a função parseFloat do JavaScript. Fizemo-lo para que a nossa função também possa lidar com variáveis de string. Se não analisar uma variável de string antes de usar o método toFixed(), o seu código irá lançar o seguinte Uncaught TypeError:

Uncaught TypeError: val.toFixed não é uma função

Isto é porque o Número.prototype.toFixed() só pode ser usado com o método Number variables tais como flutuadores e inteiros.

Nota que ao contrário da função number_format do PHP, esta função não adiciona milhares de separadores.

P>Pode testar esta função usando os seguintes exemplos:

console.log(number_format(2.333, 2)); //Result: 2.33console.log(number_format("9.01345", 2)); //Result: 9.01console.log(number_format(5, 2)); //Result: 5.00console.log(number_format("383.48910093", 4)); //Result: 383.4891console.log(number_format(33.92039, 1)); //Result: 33.9

Como pode ver, esta função pode lidar tanto com números como com strings:

  • Pomos capazes de arredondar o flutuador 2.333 a 2 casas decimais.
  • A string “9.01345” foi arredondada para 9.01.
  • Um número inteiro como 5 tornar-se-á “5”.00″, com dois zeros a serem anexados atrás da casa decimal.
  • Para “383.48910093”, alterámos o segundo parâmetro para 4. Isto arredondou o número para 4 casas decimais, resultando em 383.4891.
  • Finalmente, arredondámos 33.92039 para 1 casa decimal, resultando em 33.9.

esperadamente, achou útil o código acima!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *