Formato para mostrar un número (decimales)
Quisiera saber como puedo darle formato a un número, es decir, como colocarle al valor el signo de miles y de decimales....
gracias por la ayuda...
gracias por la ayuda...
gracias por la ayuda...la probe y funiona bien....gracias...aqui hay otra función interesante que lo hace...
function FComma(SS)
{
var T=\'\', S=String(SS), L=S.length-1, C, j, P = S.indexOf(\',\')-1
if (P<0) P=L
for (j=0; j<=L; j++)
{
T+=C=S.charAt(j)
if ((j < P) && ((P-j)%3 == 0) && (C != \'-\'))
T+=\'.\'
}
return T
}
En este caso la funcion recibe el numero, por ejemplo 12345 y devuelve 12.345....en el caso que el numero ya tenga el decimal 12345,12, devuelve 12.345,12...
function FComma(SS)
{
var T=\'\', S=String(SS), L=S.length-1, C, j, P = S.indexOf(\',\')-1
if (P<0) P=L
for (j=0; j<=L; j++)
{
T+=C=S.charAt(j)
if ((j < P) && ((P-j)%3 == 0) && (C != \'-\'))
T+=\'.\'
}
return T
}
En este caso la funcion recibe el numero, por ejemplo 12345 y devuelve 12.345....en el caso que el numero ya tenga el decimal 12345,12, devuelve 12.345,12...
Me parece que no esta funcionando ese Script, estan mal los delimitadores de ; y la función falta cerrar con la sentencia compuesta.
Buenos dÃas, prueba con la siguiente función que uso yo:
En el HEAD, pon la siguiente función:
function formatMoneda(num,longEntera, decSep,thousandSep) {
var arg;
var entero;
if(typeof(num) == 'undefined') return;
if(typeof(decSep) == 'undefined') decSep = ',';
if(typeof(thousandSep) == 'undefined') thousandSep = '.';
if(thousandSep == '.'){
arg=/./g;
}else if(thousandSep == ','){
arg=/,/g;
}
if(typeof(arg) != 'undefined'){
num = num.toString().replace(arg,'');
}
num = num.toString().replace(/,/g,'.');
if (num.indexOf('.') != -1)
{
entero = num.substring(0, num.indexOf('.'));
}
else entero = num;
if (entero.length > longEntera)
{
alert("El número introducido excede de " + longEntera + " digitos en su parte entera");
return "0,00";
}
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/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))+thousandSep+ num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + decSep + cents);
}
Y en el Body:
<INPUT type="text" name="txtCampo" value="" OnKeyPress="LP_data()" onBlur="this.value=formatMoneda(this.value, 9);" MAXLENGTH="16">
Espero te sea útil, un saludo
En el HEAD, pon la siguiente función:
function formatMoneda(num,longEntera, decSep,thousandSep) {
var arg;
var entero;
if(typeof(num) == 'undefined') return;
if(typeof(decSep) == 'undefined') decSep = ',';
if(typeof(thousandSep) == 'undefined') thousandSep = '.';
if(thousandSep == '.'){
arg=/./g;
}else if(thousandSep == ','){
arg=/,/g;
}
if(typeof(arg) != 'undefined'){
num = num.toString().replace(arg,'');
}
num = num.toString().replace(/,/g,'.');
if (num.indexOf('.') != -1)
{
entero = num.substring(0, num.indexOf('.'));
}
else entero = num;
if (entero.length > longEntera)
{
alert("El número introducido excede de " + longEntera + " digitos en su parte entera");
return "0,00";
}
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/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))+thousandSep+ num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + decSep + cents);
}
Y en el Body:
<INPUT type="text" name="txtCampo" value="" OnKeyPress="LP_data()" onBlur="this.value=formatMoneda(this.value, 9);" MAXLENGTH="16">
Espero te sea útil, un saludo