preciso armazenar numeros num campo double (são valores de imóveis), o problema é que não tenho como especificar a um usuário o padrão que tem que ser... preciso com que o sistema entenda os número que o usuário digitar.
ou seja, se o cara digitar 120 o sistema transforma em 120,00 e na hora de submeter ele transforma em 120.0 (essa última transformação tá tranquilo).
daí se o cara digita 120,00 tem que só transformar pra 120.0, o que tá tranquilo também.
se o cara digitar 1.120 tem que fazer virar 1120.0...
Bom, muita coisa disso eu já consegui fazer funcionar com as funções que vou postar abaixo. O que eu não estou conseguindo fazer é o controle da virgula... independente do que o cara digitar, ele bota a vírgula nas duas últimas casas, então vou ter que obrigar o cara a digitar os centavos. Preciso de uma mão pra corrigir isso... sei que grande parte do pessoal aqui já trabalhou com número e vai poder dar uma ajuda.
A função que estou usando é essa:
function maskCurrency(val, milSep, decSep) {
/* removing previous format */
s = val;
filteredValues = "."; // Characters stripped out
var i;
var returnString = "";
for (i = 0; i < s.length; i++) { // Search through string and append to unfiltered values to returnString.
var c = s.charAt(i);
if (filteredValues.indexOf(c) == -1) returnString += c;
}
val = returnString;
val =val.split(',').join('.');
/* re-formating. :P */
var aux="";
var aux2="";
var i,j;
len = val.length;
if (len == 0) {
aux = '';
} else if (len == 1) {
aux = '0'+ decSep + '0' + val;
} else if (len == 2) {
aux = '0'+ decSep + val;
} else if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += val.charAt(i);
j++;
}
aux = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--) {
aux += aux2.charAt(i);
}
aux += decSep + val.substr(len - 2, len);
}
return aux;
}
Pergunta
bigodines
Galera,
preciso armazenar numeros num campo double (são valores de imóveis), o problema é que não tenho como especificar a um usuário o padrão que tem que ser... preciso com que o sistema entenda os número que o usuário digitar.
ou seja, se o cara digitar 120 o sistema transforma em 120,00 e na hora de submeter ele transforma em 120.0 (essa última transformação tá tranquilo).
daí se o cara digita 120,00 tem que só transformar pra 120.0, o que tá tranquilo também.
se o cara digitar 1.120 tem que fazer virar 1120.0...
Bom, muita coisa disso eu já consegui fazer funcionar com as funções que vou postar abaixo. O que eu não estou conseguindo fazer é o controle da virgula... independente do que o cara digitar, ele bota a vírgula nas duas últimas casas, então vou ter que obrigar o cara a digitar os centavos. Preciso de uma mão pra corrigir isso... sei que grande parte do pessoal aqui já trabalhou com número e vai poder dar uma ajuda.
A função que estou usando é essa:
Abraço,
Matheus
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.