Foros del Web » Creando para Internet » Flash y Actionscript »

Darle formato a un número

Estas en el tema de Darle formato a un número en el foro de Flash y Actionscript en Foros del Web. Saludos: Este es el problema, resulta que tengo que darle formato a un número. Me explico: Obtengo un número, digamos el 1560; lo que necesito ...
  #1 (permalink)  
Antiguo 07/09/2006, 01:08
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 10 meses
Puntos: 3
Darle formato a un número

Saludos:

Este es el problema, resulta que tengo que darle formato a un número. Me explico:

Obtengo un número, digamos el 1560; lo que necesito sería dejarlo como 1.560 (o sea, concatenarle el . después de 3 dígitos). Esto se extiende para número como 10 mil, 100 mil, 1 millón

1000 = 1.000
10000 = 10.000
100000 = 100.000
1000000 = 1.000.000

... y así sucesivamente ...

Por más que juego con los métodos del objeto String no se me ocurre nada . ¿Alguien tiene entre sus "cachureos" alguna función que de solución a esto? (se ve fácil, pero luego de 1 hora probando me di cuenta que sólo quedó en "se ve" )
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #2 (permalink)  
Antiguo 07/09/2006, 10:50
 
Fecha de Ingreso: julio-2006
Mensajes: 49
Antigüedad: 11 años, 4 meses
Puntos: 0
No entiendo muy bien lo que quieres es que aparezca en una caja de dinamica de texto como 1.000 en vez de 1000?
  #3 (permalink)  
Antiguo 07/09/2006, 12:39
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 10 meses
Puntos: 3
Ejemplo: Todos los números que visualizo en Flash quedan de la forma:

1520450 por ejemplo... lo que necesito es darle formato para que quede 1.520.450 (poner un punto después de 3 dígitos que es la regla general para los números). ¿Se entiende?.

Si tengo 1520450 que quede como 1.520.450 (de donde obtengo el valor es transparente para lo que necesito)
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #4 (permalink)  
Antiguo 07/09/2006, 13:31
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 15 años, 11 meses
Puntos: 193
a ver esto fue lo primero que se me ocurrio, copia pega y prueba

Código:
function makeNumberFormat (value : Object, separator : String)
{
	var str : Array = value.toString ().split ("");
	var i : Number = 0;
	var count : Number = 0
	var tmpArray : Array = []
	var back : String = ""
	str.reverse ();
	while (str [i])
	{
		if ((count % 4) == 0)
		{
			tmpArray.push (separator)
		} else
		{
			tmpArray.push (str [i])
			i ++
		}
		count ++
	}
	tmpArray.reverse ();
	i = 0;
	while (tmpArray [i])
	{
		back += tmpArray [i];
		i ++
	}
	return back.substr (0, back.length - 1);
}
trace (makeNumberFormat (1000, ","))
trace (makeNumberFormat (10000, ","))
trace (makeNumberFormat (100000, ","))
trace (makeNumberFormat (1000000, ","))
trace (makeNumberFormat (10000000, ","))
  #5 (permalink)  
Antiguo 07/09/2006, 22:36
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 10 meses
Puntos: 3
Vale maestro, voy a intentar adecuar el código a AS 1.0 (estoy utilizando Flash MX 6.0 ¬¬). Mantengo al tanto como me fue.
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #6 (permalink)  
Antiguo 07/09/2006, 23:15
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 10 meses
Puntos: 3
Todo perfecto estimado, hice algunas modificaciones en el código (por ejemplo en los ciclos while, puesto que si un número termina en 0, AS1 lo interpreta como false y no permite entrar al bucle). El código modificado está full operativo para AS1.0, a ver si alguien le sirve. Muchas gracias nuevamente TMeister .

Código:
function makeNumberFormat(value, separator) {
	str = value.toString().split("");
	i=0;
	count=0;
	tmpArray=new Array();
	back="";
	str.reverse();
	j=0;
	while(j<=str.length) {
		if ((count%4) == 0) {
			tmpArray.push(separator);
		} else {
			tmpArray.push(str[j]);
			j++;
		}
		count++;
	}
	tmpArray.reverse();
	
	for(i=0;i<tmpArray.length;i++) {
		back += tmpArray[i];
	}
	return back.substr(0, back.length-1);
}
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #7 (permalink)  
Antiguo 07/09/2006, 23:50
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 15 años, 11 meses
Puntos: 193
nice
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:27.