Para dar formato a un número desde javascript, añade la función dar_formato a tu código y llámala con el número a formatear.
//Autor : Roberto Herrero & Daniel//Web: http://www.indomita.org //Asunto : Dar formato a un número function dar_formato(num){ var cadena = ""; var aux; var cont = 1,m,k; if(num<0) aux=1; else aux=0; num=num.toString(); for(m=num.length-1; m>=0; m--){ cadena = num.charAt(m) + cadena; if(cont%3 == 0 && m >aux) cadena = "." + cadena; else cadena = cadena; if(cont== 3) cont = 1; else cont++; } cadena = cadena.replace(/.,/,","); return cadena; }Entradas relacionadas
- » Mostrar url competa en la barra de dirección de Firefox
» Actualizar Repositorios Centos 5.5 64 bits
» Averigua cuanto tarda en cargar tu sitio web desde todo el mundo con Internet Supervicion
- » Crear servicio de aviso por SMS con google calendar y PHP
» Ordena y edita tablas en javascript con EditableGrid
14 Comentarios
Buenas, estuve revisando su funcion y está bastante practica y funcional, solo una sugerencia. La estuve utilizando en mi Aplicacion y cuando tenia numeros con decimales me retornaba un punto adicional, ejemplo: 1.234.,56 por tal razón l eañadí antes del return lo siguiente:
cadena = cadena.replace(/.,/,»,»);
y listo de esta forma ese punto adicional que se genera entre la parte entera y la parte decimal es eliminado.
Saludos,
Daniel E. D’ Armas G.
ddarmas@gmail.com
Antes que nada muchas gracias por el aviso.
La verdad es que como únicamente la he utilizado para dar formato a números enteros no me había dado cuenta.
Voy a modificar el código con tu sugerencia.
Pero y si no quiero los decimales??
puedes adaptar la función a tu gusto 😀
con finalizar el bucle cuando encuentres un punto ya lo tendrías 😛
como lo aplicaría a un div
solo tendrías que llamar a la función en el evento que dispongas y cambiar el contenido del div con su nuevo valor 😀
He probado el código, pero no siempre se manejan estos formatos como 1.236.00; yo quisiera que en un cálculo por ejemplo 0.80 * 3 = 2.40; pero este número sin la función me da 2.4000000; y quisiera expresarlo en dos o tres decimales, como puedo adaptar la función??
Añadiendo un parámetro que sea decimales y al encontrar dentro del bucle un punto, comenzar a contar y mostrar solo los decimales solicitados 😉
Sería interesante que lo publiques, así mantendrás actualizado este tema. Lo he intentado pero no logro lo que me propones, tal vez no se en que línea pero igual lo he intentado varias veces, si puedes ayudarme te agradezco de antemano.
Muchas gracias, la verdad me ha ahorrado mucho tiempo.
Muchas gracias
Modifique la funcion porque al colocar un evento onchange o onkeyup no mostraba correctamente el numero y añadia mas puntos (La use para valores de dinero y funciono correctamente) la comparto en caso de que le pueda servir a alguien muy buen post por cierto.
function dar_formato(campo){
var num = campo.value;
num=num.toString();
while (num.toString().indexOf(«.») != -1){
num = num.toString().replace(«.»,»»);
}
var cadena = «»; var aux;
var cont = 1,m,k;
if(num=0; m–){
cadena = num.charAt(m) + cadena;
if(cont%3 == 0 && m >aux) cadena = «.» + cadena; else cadena = cadena;
if(cont== 3) cont = 1; else cont++;
}
cadena = cadena.replace(/.,/,»,»);
$(‘#valFact’).val(cadena);
}
Hola soy nuevo en esto, quiero colocar un campo de texto y que me devuelva el numero formateado, como hago para llamar la función?
Tengo este formulario y quiero que al darle al botón enviar me muestre el numero formateado
Monto:
Gracias de antemano espero me puedan ayudar
Hola, excelente código. Dime, ¿cómo lo aplico a una div?
Gracias.
document.getElementById(«la ID de tu DIV»).innerHTML=dar_formato(número que quieres dar formato);
Escribir un Comentario