Foros del Web » Programando para Internet » Javascript »

Formatear números

Estas en el tema de Formatear números en el foro de Javascript en Foros del Web. Alguien podría ayudarme, mi problemas es el siguiente. Tengo en un txt un número decimal, el 1543.34, el decimal está separado del entero por un ...
  #1 (permalink)  
Antiguo 14/04/2005, 15:02
Avatar de PabloP  
Fecha de Ingreso: marzo-2005
Mensajes: 83
Antigüedad: 19 años, 1 mes
Puntos: 0
Formatear números

Alguien podría ayudarme, mi problemas es el siguiente.
Tengo en un txt un número decimal, el 1543.34, el decimal está separado del entero por un punto pero lo que yo necesito es que el decimal esté separado por coma "," y los miles por punto o sea el número sería 1.543,34 pero además como hago operaciones matemáticas con el número necesito una función para desformatear el número, o sea que lko vuelva a dejar como 1543.34, bueno eso gracias.
  #2 (permalink)  
Antiguo 14/04/2005, 16:19
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, Pablo
Prueba con esto
Código PHP:
function aNumero(n)
{
    
n.replace(".","")
    
n.replace(",",".")
    return 
parseFloat(n)
}
function 
deNumero(n)
{
    
n.toString()
    
n.replace(".",",")
    var 
= new Array()
    
n.split(",")
    
puntoMiles(m[0])
    if (
m[1]) {"," m[1]}
    return 
n
}
function 
puntoMiles(n
{
    var 
ajuste //debe ser entero
    
ajuste=ajuste.toString();
    var 
k=ajuste.length
    
var ajuste2=''
    
if (k>9) { ajuste2+=ajuste.substring(0,k-9)+'.' }
    if (
k>6) { ajuste2+=ajuste.substring(k-9,k-6)+'.' }
    if (
k>3) { ajuste2+=ajuste.substring(k-6,k-3)+'.' }
    
ajuste2+=ajuste.substr(k-3)
    return 
ajuste2

(sólo funciona hasta 11 cifras a la izquierda de la coma)
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 15/04/2005, 08:40
Avatar de PabloP  
Fecha de Ingreso: marzo-2005
Mensajes: 83
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias pero llamo a las funciones con el botón y no pasa nada, que me falta?, gracias
  #4 (permalink)  
Antiguo 16/04/2005, 08:55
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
¿Cómo las estás llamando?
Por ejemplo:
<form>
<input type="text" name="entrada1">
<input type="button" value="formato número" onClick="this.form.salida1.value=aNumero(this.form .entrada1.value)">
<input type="text" name="salida1">
<br>
<input type="text" name="entrada2">
<input type="button" value="formato miles" onClick="this.form.salida2.value=deNumero(this.for m.entrada2.value)">
<input type="text" name="salida2">
</form>
__________________
Angel :cool:
  #5 (permalink)  
Antiguo 20/04/2005, 07:43
Avatar de PabloP  
Fecha de Ingreso: marzo-2005
Mensajes: 83
Antigüedad: 19 años, 1 mes
Puntos: 0
Muchas gracias, me funcionó bastante bien salvo por un detalle y es que funciona para un sólo punto, o sea si pongo 1.000 (mil) me lo transforma a 1000 pero si pongo 1.000.000 (un millon) me lo transforma a 1000.000, bueno y eso, de todas formas estoy tratando de solucionarlo por mi mismo pero si alguien encuentra la respuesta por favor ayudenme, gracias.
  #6 (permalink)  
Antiguo 20/04/2005, 09:23
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 PabloP

Veamos si este código te sirve:
Código PHP:
function formateo(num) {
  
forma='';
  
num=num.split('.');
  
entero=num[0];
  while (
entero.length>0) {
    
tres=entero.substr(entero.length-3,3);
    
punto = (forma.length==0) ? '' '.'
    
forma tres punto forma;
    
entero=entero.substr(0,entero.length-3);
  }
  
coma = (num.length==1) ? '' ','+num[1];
  return 
forma coma;

Saludos,
  #7 (permalink)  
Antiguo 11/05/2005, 15:55
 
Fecha de Ingreso: agosto-2004
Ubicación: Caracas, Venezuela
Mensajes: 5
Antigüedad: 19 años, 8 meses
Puntos: 0
Cita:
Iniciado por angsanchez
Hola, Pablo
Prueba con esto
Código PHP:
function aNumero(n)
{
    
n.replace(".","")
    
n.replace(",",".")
    return 
parseFloat(n)

saludos, para que la funcion anterior pueda funcionar con numeros grandes tienen que agregar la siguiente linea

function aNumero(n)
{
while(n.indexOf(".") > 0)
n = n.replace(".","")
n = n.replace(",",".")
return parseFloat(n)
}

Última edición por charliemays; 11/05/2005 a las 16:12
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 18:16.