Formatar moeda”valores monetários” em Javascript

8 03 2007

Importante Para Download e Demonstração Acesse

http://battisti.etc.br/projetos/

Saudações

Pessoal ai vão 3 funções bem legais para manipular valores monetários em javascript.

1 – roundNumber

Em php temos a função round cujo objetivo é arredondar valores em um certo número de casas decimais. Já no javascript para definirmos a quantidade de casas decimais temos que usar de artimanhas :) .

function roundNumber (rnum) {

   return Math.round(rnum*Math.pow(10,2))/Math.pow(10,2);

}

2 – float2moeda

A partir de um valor float ela retorna o valor formatado com separador de milhar e vírgula nos centavos.

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;

}

3 – moeda2float

Pega um valor formatado com virgula e separador de milha e o transforma em float

function moeda2float(moeda){

   moeda = moeda.replace(".","");

   moeda = moeda.replace(",",".");

   return parseFloat(moeda);

}

Referência

http://www.truquesedicas.com/tutoriais/javascript/00018a.htm

http://www.mediacollege.com/internet/javascript/number/round.html


Ações

Informações

28 respostas

3 06 2007
Roger de Almeida Haroldo

Programar é criar soluções simples!!!!!!!

Para formatar um valor cujo separador decimal seja o ponto, basta usar a seguinte função no PHP.

//Exemplo:

$ValorDolar=8125.39;
$ValorReal = number_format($ValorDolar, 2, ‘,’, ‘.’);
echo $ValorReal;

// O resultado será 8.125,39

14 08 2009
Jorge

@Roger

Vlw pela dica cara. Por incrível que pareça estava justamente precisando fazer isso em PHP. =)

3 06 2007
battisti

Sua solução é simples realmente, mas ela esta em PHP. O objetivo deste script é fazer a formatação e a exibição dos valores apenas em Javascript, isto é necessário por exemplo em carrinhos de compras ou telas de pagamentos que usam Ajax, nestas situações as funções em PHP são de processamento custo.

Devemos tornar a vida dos usuário simples, mesmo que isto nos leve a uma programação mais complicada.

28 08 2007
Rodrigo

Valeu, foi de grande ajuda.

Tens o meu e-mail, precisando é só pedir.

PHP, AJAX, JavaScript, MySQL

26 10 2007
Rafael

Cara boa materia,
foi de grande ajuda para um projeto que estou participando.

Parabéns e obrigado!!

31 10 2007
Paulo Araujo

Bom mesmo, meus parabéns! na verdade eu estava querendo o código pra fazer em PHP mesmo rsrs. Obrigado Roger pela colaboração!! Mas salvei seu código aqui, pq com certeza vou acabar precisando, afinal funciona tanto em JS como em AS sem nenhuma alteração ;) !
Abraços e parabéns!

21 11 2007
Pablo Leal

Olha realmente esta é a melhor solução que encontrei. Parabéns…

27 11 2007
Luiz Felipe Weber

Valeu mesmo… Foi de grande ajuda este script de conversão em javascript…

“Mãos rápidas levam menas chibatadas”…

hehehehhe

valew meu chpa.

30 12 2007
Silvio

Valeu ai!
Ajudou muito estes script para moeda…
Muito bom mesmo!!
Sem palavras!
[]`s

9 01 2008
Rodrigo

Ola. Obrigado, essa função foi muito util num sistema em Ajax que estou desenvolvendo! Valeuu!

19 02 2008
Gerson

Muito bom script, encaixa perfeitamente no que eu estou procurando, que é formatar a saída de um valor float do ajax.

Tks!

19 02 2008
Gerson

Valeu

19 03 2008
Ana Paula

Muito bom o script, era justamente o que procurava!
=)

18 04 2008
Luiz Godoy

Scripts úteis, obrigado por publica-los com a referência.

abs,

19 04 2008
battisti

Então Luiz isso que você citou REFERÊNCIAS eu acho de extrema importância que elas apareçam em qualquer publicação por dois motivos:

1 – Na nossa área é muito difícil que alguém tenha aprendido alguma coisa sem ter consultado uma referência ou outro indivíduo de boa vontade tenha ajudado;
2 – Deixar uma trilha de como você obteve aquele conhecimento auxilia outras pessoas a seguir pelo mesmo caminho a fim de também conhecerem mais profundamente o assunto.

Só uma observação esses script foram compilados nesta classe:
http://battisti.wordpress.com/2007/12/03/classe-formatar-moeda-valores-monetarios-em-javascript/

8 05 2008
Ivan Kuiava

Anselmo.. seu script é excelente… salvou minha vida… ehheheh

abraço

19 08 2008
Marcos Cestari

Parabéns Muito bom…
Continue assim.

Abraço

Marcos Cestari

30 08 2008
Luiz WeberScripts

Valeu mais uma vez,

Vou adicionar teu site aqui nos meus favoritos do meu IE 8 beta 2

euahuehaheha

abraço

30 08 2008
battisti

O IE8 esta para a minha pessoal assim como o alho para vampiros ou balas de prata para lobisomem!

1 09 2008
Fernando

Assim como as versões anteriores do IE.
Estou aprendendo Ajax, e estava googleando atrás dessa função. No PHP até sei fazer, mas eu precisava fazer isso antes do usuário enviar os dados.
Muito obrigado!!

17 10 2008
Francisco

Esse código não funciona pra valores acima de 1 milhão,
eu criei uma pequena solução que serve como complemento a esse código =)

var formata_valor = new Array();
var teste = novo_valor
formata_valor=teste.split(“.”)
valor_formatado=”

for (i=1;i<formata_valor.length;i++)
{
valor_formatado = valor_formatado+formata_valor[i-1];
}
valor_formatado = valor_formatado+”.”+formata_valor[formata_valor.length-1]

parseFloat(valor_formatado);
alert(valor_formatado);

17 10 2008
battisti

GRANDE CONTRIBUIÇÃO FRANCISCO!!!!!!!!!!!!

17 10 2008
Francisco

Disponha!
É sempre um prazer colaborar com o compartilhamento de informações, afinal, a dificuldade que eu encontrei, pode ser a dificuldade de outras pessoas, do mesmo jeito que este blog me ajudou com a dica sobre como tratar e arredondar os valores, que fique como meu agradecimento esse pequeno e humilde complemento =)

Abs.

16 12 2008
Matheus

Boa cara, parabéns

16 01 2009
Feliphe

Boa Francisco, valeu msmo cara, esse codigo q vc postou ai, salvou minha cabeça hj aki no serviço…:D

28 07 2009
Douglas

Valeu! Muito boa!
Para o que eu precisava foi perfeita.

Obrigado e Saudacoes…

4 11 2009
Hugo Martins

Muito obrigado .. essa função me quebrou um grande galho . melhor ,,, uma arvore inteira .. tks

5 11 2009
battisti

estamos ai

Deixe um comentário