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 originalvar precio = new Array();
precio[0] = 0;
precio[1] = 27.5; // Ref.: 0001
precio[2] = 19; // Ref.: 0002
precio[3] = 31.5; // Ref.: 0003
precio[4] = ((precio[1] - (precio[1]*0.85))) ; // Ref.: 0001 Dto socios
precio[5] = ((precio[2] - (precio[2]*0.85))) ; // Ref.: 0002 Dto socios
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 originalvar num = var num = 10;
num = num.toFixed(2);
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 originalvar precio = new Array();
precio[0] = 0;
precio[1] = 27.5; // Ref.: 0001
precio[2] = 19; // Ref.: 0002
precio[3] = 31.5; // Ref.: 0003
precio[4] = ((precio[1] - (precio[1]*0.85))) ; // Ref.: 0001 Dto socios
precio[5] = ((precio[2] - (precio[2]*0.85))) ; // Ref.: 0002 Dto socios
precio[6] = ((precio[3] - (precio[3]*0.85))) ; // Ref.: 0003 Dto socios
alert(precio[4].toFixed(2));//mostrar 2 cifras decimales
alert(precio[4].toFixed(2).toString().replace('.',','));//mostrar con coma
alert(_formatearNum(precio[4]));//usando la funcion
function _formatearNum(num){
return num.toFixed(2).toString().replace('.',',');
}
Espero eso resuelva tu duda :)