widacaro evobas

Nube

lunes, 28 de julio de 2008

Función para dar formato a un número en javascript

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.

  1. <SCRIPT LANGUAJE="Javascript">  
  2.   
  3. //Autor :  Roberto Herrero & Daniel  
  4. //Web: http://www.indomita.org  
  5. //Asunto : Dar formato a un número  
  6. function dar_formato(num){  
  7.   
  8. var cadena = ""var aux;  
  9.   
  10. var cont = 1,m,k;  
  11.   
  12. if(num<0) aux=1; else aux=0;  
  13.   
  14. num=num.toString();  
  15.   
  16.   
  17.   
  18. for(m=num.length-1; m>=0; m--){  
  19.   
  20.  cadena = num.charAt(m) + cadena;  
  21.   
  22.  if(cont%3 == 0 && m >aux)  cadena = "." + cadena; else cadena = cadena;  
  23.   
  24.  if(cont== 3) cont = 1; else cont++;  
  25.   
  26. }  
  27.   
  28. cadena = cadena.replace(/.,/,",");  
  29.   
  30. return cadena;  
  31.   
  32. }  
  33.   
  34. </SCRIPT>  

4 comentarios:

ddarmas dijo...

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

Demiurgo dijo...

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.

Anónimo dijo...

YO HICE ESTA FUNCION PARA DAR FORMATO A UN NUMERO FLOTANTE LE ASIGNA 2 O MAS UNIDADES DESPUES DEL PUNTO...

function FromatoNumero(numero){

var total = numero.toString();

var puntoPos = total.indexOf('.');
var tamano = total.length;
if (puntoPos > 0 && tamano > 4){



var TotalConFormato = total.substring(0, (Number(puntoPos)+2));

return(Number(TotalConFormato));
}else{
return (Number(numero));

}



}

Anónimo dijo...

creo que esta mas sencilla de entender