· 8 years ago · May 03, 2018, 06:12 PM
1/**
2 * moeda
3 *
4 * @abstract Classe que formata de desformata valores monetários em float e formata valores
5 * de float em moeda.
6 *
7 * @author anselmo
8 *
9 * @email anselmobattisti arroba gmail.com
10 *
11 * @site battisti.etc.br
12 *
13 * @example
14 * moeda.formatar(1000)
15 * >> retornar 1.000,00
16 *
17 * moeda.desformatar(1.000,00)
18 * >> retornar 1000
19 *
20 * @version 1.0
21 **/
22 var moeda = {
23
24 /**
25 * retiraFormatacao
26 *
27 * Remove a formatação de uma string de moeda e retorna um float
28 *
29 * @param {Object} num
30 */
31 desformatar: function(num){
32 num = num.replace(".","");
33
34 num = num.replace(",",".");
35
36 return parseFloat(num);
37 },
38
39 /**
40 * formatar
41 *
42 * Deixar um valor float no formato monetário
43 *
44 * @param {Object} num
45 */
46 formatar: function(num){
47 x = 0;
48
49 if(num<0){
50 num = Math.abs(num);
51 x = 1;
52 }
53
54 if(isNaN(num)) num = "0";
55 cents = Math.floor((num*100+0.5)%100);
56
57 num = Math.floor((num*100+0.5)/100).toString();
58
59 if(cents < 10) cents = "0" + cents;
60 for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
61 num = num.substring(0,num.length-(4*i+3))+'.'
62 +num.substring(num.length-(4*i+3));
63
64 ret = num + ',' + cents;
65
66 if (x == 1) ret = ' - ' + ret;return ret;
67 },
68
69 /**
70 * arredondar
71 *
72 * @abstract Arredonda um valor quebrado para duas casas decimais.
73 *
74 * @param {Object} num
75 */
76 arredondar: function(num){
77 return Math.round(num*Math.pow(10,2))/Math.pow(10,2);
78 }
79 }