Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/06/2011, 02:47
Avatar de joss23
joss23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: ¿Elemento de texto de un Array como valor numérico?

Cita:
Iniciado por Naahuel Ver Mensaje
No es necesario que los elementos sean de "text" si querés insertarlos en el DOM en un nodo. Sin embargo, sí necesitan ser números para que puedas realizar operaciones numéricas.

Algo así:

Código Javascript:
Ver original
  1. var precio = new Array();
  2. precio[0] = 0;
  3. precio[1] = 27.5; // Ref.: 0001
  4. precio[2] = 19; // Ref.: 0002
  5. precio[3] = 31.5; // Ref.: 0003
  6. precio[4] = ((precio[1] - (precio[1]*0.85))) ; // Ref.: 0001 Dto socios
  7. precio[5] = ((precio[2] - (precio[2]*0.85))) ; // Ref.: 0002 Dto socios
  8. precio[6] = ((precio[3] - (precio[3]*0.85))) ; // Ref.: 0003 Dto socios

No vas a tener problema tratando esos valores para mostrarlos. Si lo que querés es darle formato numérico de 2 cifras y usar la coma como separador decimal podés usar el método .toFixed() para darle el número de cifras decimales.

Así:

Código Javascript:
Ver original
  1. var num = var num = 10;
  2. num = num.toFixed(2);
  3. alert(num); //muestra "10.00"

Para intercambiar el punto por la coma podés usar el método .replace() de los strings (Claro que tenés que convertir el número a string con .toString()).

Te dejo un ejemplo funcionando:
[URL="http://jsbin.com/edova5"]http://jsbin.com/edova5[/URL]

Código, con una función para facilitar el asunto:
Código Javascript:
Ver original
  1. var precio = new Array();
  2. precio[0] = 0;
  3. precio[1] = 27.5; // Ref.: 0001
  4. precio[2] = 19; // Ref.: 0002
  5. precio[3] = 31.5; // Ref.: 0003
  6. precio[4] = ((precio[1] - (precio[1]*0.85))) ; // Ref.: 0001 Dto socios
  7. precio[5] = ((precio[2] - (precio[2]*0.85))) ; // Ref.: 0002 Dto socios
  8. precio[6] = ((precio[3] - (precio[3]*0.85))) ; // Ref.: 0003 Dto socios
  9.  
  10. alert(precio[4].toFixed(2));//mostrar 2 cifras decimales
  11. alert(precio[4].toFixed(2).toString().replace('.',','));//mostrar con coma
  12.    
  13. alert(_formatearNum(precio[4]));//usando la funcion
  14.    
  15. function _formatearNum(num){
  16.       return num.toFixed(2).toString().replace('.',',');
  17. }


Espero eso resuelva tu duda :)
Muchas gracias Naahuel!!
Lo acabo de probar y funciona a la perfección :D
Gracias otra vez!