Formato para mostrar un número (decimales)

mebencomo
29 de Noviembre del 2005
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...

mebencomo
29 de Noviembre del 2005
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...

Mariano
29 de Noviembre del 2005
Me parece que no esta funcionando ese Script, estan mal los delimitadores de ; y la función falta cerrar con la sentencia compuesta.

Drocher
29 de Noviembre del 2005
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