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!