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);

}

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *