Foros del Web » Programando para Internet » Javascript »

Equivalencia de FormatNumber en JavaScript

Estas en el tema de Equivalencia de FormatNumber en JavaScript en el foro de Javascript en Foros del Web. Hola a todos, necesito una función equivalente al FormatNumber en JavaScript, he mirado en las faqs y he encontrado esto: function Decimales(Numero, Decimales) { pot ...
  #1 (permalink)  
Antiguo 25/01/2005, 02:20
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 4 meses
Puntos: 1
Pregunta Equivalencia de FormatNumber en JavaScript

Hola a todos,

necesito una función equivalente al FormatNumber en JavaScript, he mirado en las faqs y he encontrado esto:

function Decimales(Numero, Decimales) {
pot = Math.pow(10,Decimales);
return parseInt(Numero * pot) / pot;
}

El problema que tengo con esta función es que si no tiene decimales no me salen los ceros, por ejemplo:

Si tengo 22.12345678 la función me devuelve 22.12

pero si tengo 22 me devuelve 22 en lugar de 22.00

¿Cómo prodría solucionarlo?

Un saludo.
__________________
ThE MaTriX HaS YoU
  #2 (permalink)  
Antiguo 25/01/2005, 02:53
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola TomaHawkk

He modificado un poco la función:

Código:
function Decimales(Numero, Decimales) {
pot = Math.pow(10,Decimales);
num = parseInt(Numero * pot) / pot;
nume = num.toString().split('.');
if(nume.length==1) {
  var deci='';
  for(i=0;i<Decimales;i++)
    deci+=String.fromCharCode(48);
  num=nume+'.'+deci;
}
return num;
}
Saludos,
  #3 (permalink)  
Antiguo 26/01/2005, 01:02
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 4 meses
Puntos: 1
Hola,

me funciona bien en el ejemplo de arriba pero en el caso de que tenga un número de este formato 2.3 no me devuelve 2.30

Un saludo
Gracias.
__________________
ThE MaTriX HaS YoU
  #4 (permalink)  
Antiguo 26/01/2005, 11:26
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Más modificaciones de código:
Código:
function Decimales(Numero, Decimales) {
pot = Math.pow(10,Decimales);
num = parseInt(Numero * pot) / pot;
nume = num.toString().split('.');
entero = nume[0];
decima = nume[1];
fin = Decimales-decima.length;
for(i=0;i<fin;i++) 
  decima+=String.fromCharCode(48); 

num=entero+'.'+decima;
return num;
}
Saludos,
  #5 (permalink)  
Antiguo 27/01/2005, 01:10
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 4 meses
Puntos: 1
Sonrisa

Hola,

me daba un pequeño fallo y cambiando una cosilla del último código funciona correctamente:

Código:
function Decimales(Numero, Decimales) {

	pot = Math.pow(10,Decimales);
	num = parseInt(Numero * pot) / pot;
	nume = num.toString().split('.');

	entero = nume[0];
	decima = nume[1];

	if (decima != undefined) {
		fin = Decimales-decima.length; }
	else {
		decima = '';
		fin = Decimales; }

	for(i=0;i<fin;i++)
	  decima+=String.fromCharCode(48); 

	num=entero+'.'+decima;
	return num;
}
Un saludo y gracias
__________________
ThE MaTriX HaS YoU
  #6 (permalink)  
Antiguo 27/01/2005, 04:39
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
De nada. Me alegro de que lo hayas solucionado
  #7 (permalink)  
Antiguo 20/04/2010, 03:54
 
Fecha de Ingreso: abril-2006
Mensajes: 2
Antigüedad: 18 años
Puntos: 0
Respuesta: Equivalencia de FormatNumber en JavaScript

Incorporo un pequeño añadido para mostar la separacion de los millares.

Código:
function Decimales(Numero, Decimales) {

	pot = Math.pow(10,Decimales);
	num = parseInt(Numero * pot) / pot;
	nume = num.toString().split('.');

	entero = nume[0];
	decima = nume[1];

	if (decima != undefined) {
		fin = Decimales-decima.length; }
	else {
		decima = '';
		fin = Decimales; }

	for(i=0;i<fin;i++)
	  decima+=String.fromCharCode(48); 

    buffer="";
	marca=entero.length-1;
	chars=1;
	while(marca>=0){
	   if((chars%4)==0){
		  buffer="."+buffer;
	   }
	   buffer=entero.charAt(marca)+buffer;
	   marca--;
	   chars++;
	}
	num=buffer+','+decima;
	return num;
}
  #8 (permalink)  
Antiguo 01/09/2010, 05:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 1
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Equivalencia de FormatNumber en JavaScript

Muchas gracias, Sólo fue copiar y pegar. me funciono. muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:14.