NumberFormat com JavaScript – Formatando Números com JavaScript

Quando trabalhamos com numerais sempre precisamos fazer a conversão do formato de números usados, pois a maioria dos bancos de dados usa a notação de .(ponto) para casas decimais e não usa nenhum separador para casa de milhar, por exemplo.

Notação brasileira:
$1.234,54

Notação  Americana, usada nos bancos de dados:

$1234.54

Algumas linguagens de programação já possuem funções nativas para tal conversão, no entanto o mesmo não ocorre com JavaScript, se você quer gravar algum dado no banco de dados como SQLITE isso pode ser um problema, já que a conversão será obrigatória.

Para essa tarefa podemos usar NumberFormat.js, que pode ser incluído na página para a formatação de números, com opção de formatação de tipo de moeda, percentual, grupamento de dígitos para casas decimais e de milhar com separadores customizáveis.

Como utilizar o .js:

Antes de tudo você deve fazer a inclusão do arquivo numberFormat154.js na sua página

<script type="text/javascript" src="numberFormat154.js"></script>

Agora basta instanciar um novo objeto JavaScript e definir os parâmetros necessários:

Um exemplo de conversão do formato em Real Brasileiro (R$) para a notação americana utilizada na maioria do bancos de dados:

var num = new NumberFormat();
num.setInputDecimal(',');
num.setNumber(valor.value); // valor.value é '1.000,24'
num.setPlaces('2', false);
num.setCurrencyValue('');
num.setCurrency(true);
num.setCurrencyPosition(num.LEFT_OUTSIDE);
num.setNegativeFormat(num.LEFT_DASH);
num.setNegativeRed(false);
num.setSeparators(false, ',', ',');
valor.value = num.toFormatted(); //valor.value é '1000.24'

Agora um exemplo inverso, de conversão da notação americana para R$

var num = new NumberFormat();
num.setInputDecimal('.');
num.setNumber(obj.value); // obj.value é '-1000.24'
num.setPlaces('2', false);
num.setCurrencyValue('');
num.setCurrency(true);
num.setCurrencyPosition(num.LEFT_OUTSIDE);
num.setNegativeFormat(num.LEFT_DASH);
num.setNegativeRed(false);
num.setSeparators(true, '.', ',');
obj.value = num.toFormatted(); //obj.value é '-1.000,24'

A página do projeto inclui um simulador de configurações de parâmetros que pode ser encontrado em: http://www.mredkj.com/javascript/numberFormatPage2.html

O pacote js pode ser baixado no seguinte enderenço:
http://www.mredkj.com/javascript/nfdocs.html#downloadit