Foros del Web » Programando para Internet » Javascript »

sumar string

Estas en el tema de sumar string en el foro de Javascript en Foros del Web. esto debe ser una tontera.. como puedo sumar variables de tipo string que recupero de una funcion javascript con separador de miles y decimales? ej: ...
  #1 (permalink)  
Antiguo 20/06/2003, 09:42
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 2 meses
Puntos: 0
sumar string

esto debe ser una tontera..

como puedo sumar variables de tipo string que recupero de una funcion javascript con separador de miles y decimales?

ej:

var dato = "10.302.102,21"
var dato2="9.102.321.29"

//sumar las dos variables..
...
...????

si alguien me ilumina plis
  #2 (permalink)  
Antiguo 20/06/2003, 10:07
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Para empezar quítale los puntos y sustituye las comas por puntos. Esto segundo lo puedes sustituir, siempre que tengas dos decimales, multiplicándolo por 100 y acordándote de dividir entre 100 el resultado final.

Quitando puntos:

dato = dato.split(".").join("");

Cambiando comas por puntos:

dato= dato.replace(",",".")

Como además son cadenas, lo que tienes que hacer es convertirlas a números.

dato = parseInt(dato)
o bien todo junto
suma=parseInt(dato)+parseInt(dato2)

Espero no haberme equivocado en nada.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 20/06/2003, 17:50
Avatar de Ds1
Ds1
 
Fecha de Ingreso: junio-2003
Mensajes: 87
Antigüedad: 21 años, 7 meses
Puntos: 0
Lo primero que debes hacer es sacar los separadores de miles




function dformat(vari){
for (z=1;z<=10;z++){
vari = vari.replace('.', '');
}
return (vari) ;
}




var dato = dformat("10.302.102,21");
var dato2=dformat("9.102.321.29");

document.write(parseFloat(dato)+parseFloat(dato2);



==========================

La funtion deformat limpiara tu cadena dejandote los valores listos para sumar y la function parseFloat sirbe para combertir un string en un numero FLOTANTE


  #4 (permalink)  
Antiguo 20/06/2003, 18:12
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
También vale Ds1, y es algo más corto pero no te muestra los decimales. Así sí salen:

<script>
var dato = "10.302.102,21"
var dato2="9.102.321,29"

dato = dato.split(".").join("");
dato2 = dato2.split(".").join("");

dato= dato.replace(",",".");
dato2= dato2.replace(",",".");

suma=parseFloat(dato)+parseFloat(dato2);

document.write(suma);
</script>

Gracias por Recordarme lo de parseFloat.

Por cierto, marco en negrita y rojo la coma que creo que no debía estar puesta en el código original.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 20:20.