Skip to content

Instantly share code, notes, and snippets.

@Hromenique
Last active August 29, 2015 14:05
Show Gist options
  • Save Hromenique/1fa2804641ee274f58ac to your computer and use it in GitHub Desktop.
Save Hromenique/1fa2804641ee274f58ac to your computer and use it in GitHub Desktop.
Formata uma String que representa um valor númerico como Moeda
/**
* Formata uma String que representa um valor númerico como Moeda
* Referência/Fonte: http://codigosprontos.blogspot.com.br/2010/06/o-codigo-function-moedavalor-casas.html
*
* @Params
* valor Obrigatório. String que representa um número (a parte decimal deve ser separada da parte inteira por vírgula)
* casas Obrigatório. Quantidade de casas decimais
* separdor_decimal Obrigatório. Separador de decimais, em geral é utilizado ","
* separador_milhar Obrigatório. Separado de milhar, em gerla é utlizado "."
* moeda Opcional. Abreviatura da moeda. Por exemplo: para Real, utilizar R$
*
* @Return
* Valor formatado como valor monetário
*
* @Ex
* var resultado = moeda("1000.5", 2, ',', '.', 'R$');
* resultado será igual a "R$ 1.000,50"
*
* */
function moeda(valor, casas, separdor_decimal, separador_milhar, moeda){
var valor_total = parseInt(valor * (Math.pow(10,casas)));
var inteiros = parseInt(parseInt(valor * (Math.pow(10,casas))) / parseFloat(Math.pow(10,casas)));
var centavos = parseInt(parseInt(valor * (Math.pow(10,casas))) % parseFloat(Math.pow(10,casas)));
if(centavos%10 == 0 && centavos+"".length<2 ){
centavos = centavos+"0";
}else if(centavos<10){
centavos = "0"+centavos;
}
var milhares = parseInt(inteiros/1000);
inteiros = inteiros % 1000;
var retorno = "";
if(milhares>0){
retorno = milhares+""+separador_milhar+""+retorno
if(inteiros == 0){
inteiros = "000";
} else if(inteiros < 10){
inteiros = "00"+inteiros;
} else if(inteiros < 100){
inteiros = "0"+inteiros;
}
}
retorno += inteiros+""+separdor_decimal+""+centavos;
if(moeda){
retorno = moeda+ " "+ retorno
}
return retorno;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment