18 out 2017
Trabalhar com valor monetário em JavaScript
Quem esta começando a trabalhar com valores monetários em JavaScript sofre muito, portanto vou deixar aqui alguns métodos simples e eficientes de realizar cálculos e formatação dos valores.
Semelhante a função round do PHP que arredonda valores em um certo número de casas decimais.
roundNumber
function roundNumber (rnum) { return Math.round(rnum*Math.pow(10,2))/Math.pow(10,2); }
float2moeda
A partir de um valor float ela retorna o valor formatado com separador de milhar e vírgula nos centavos.
float2moeda
function float2moeda(num) { x = 0; if(num<0) { num = Math.abs(num); x = 1; } if(isNaN(num)) num = "0"; cents = Math.floor((num*100+0.5)%100); num = Math.floor((num*100+0.5)/100).toString(); if(cents < 10) cents = "0" + cents; for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+'.' +num.substring(num.length-(4*i+3)); ret = num + ',' + cents; if (x == 1) ret = ' - ' + ret;return ret; }
Ex: Se você passar o valor 540 nesta função ele retornará 540,00
Se você passar o valor 540.12 ele retornará 540,12 particularmente achei essa função fantástica.
moeda2float
Pega um valor formatado com virgula e separador de milha e o transforma em float.
moeda2float
function moeda2float(moeda){ moeda = moeda.replace(".",""); moeda = moeda.replace(",","."); return parseFloat(moeda); }