
05/01/2007, 04:04
|
 | Moderador extraterrestre | | Fecha de Ingreso: diciembre-2001 Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 2 meses Puntos: 61 | |
Re: Sumar decimales He modificado el script para que sea más fácil de configurar, he corregido el fallo que comentaba BLAH (gracias!) y he explicado un poco el código para que te sea más comprensible. Dime si ahora te es más fácil:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Untitled</title>
<style>
.texto{
text-align:right;
font:normal 12px/12px 'courier new';
border:solid 1px black;
}
</style>
<script>
function sumar(){
campos=['pvd_batlarga','pvd_funda','pvd_protector']; //Pon aquí entre comillas y separados por comas los campos a sumar.
name_del_formulario="f1"; //Pon aquí el name del formulario
name_del_total="total_pvd"; //Pon aquí el name del campo en el que vas a poner el total
// No editar a partir de aquí si no sabes lo que haces
f=document.forms[name_del_formulario];
total=0;
g="";
anterior=0;
//Quitamos los puntos, las comas las cambiamos por puntos y sumamos los campos.
for(a=0;a<campos.length;a++){
c=f[campos[a]].value;
c=c.split(".").join("");
c=c.split(",").join(".");
total+=parseFloat(c);
}
//separamos los enteros de los decimales
partes=String(total).split(".");
cifras=partes[0].length;
enteros=partes[0];
decimales=partes[1];
decimales=String(decimales).substring(0,2); //para corregir que salgan más de dos decimales
//Averiguamos dónde poner el primer punto
primerPunto=cifras%3;
primerPunto=(primerPunto==0)?3:primerPunto;
//Colocamos los puntos de miles
for(ff=primerPunto;ff<=cifras;ff+=3){
g+=enteros.substring(anterior,ff)+".";
anterior=ff;
}
//unimos enteros y decimales
pepe=g.substring(0,g.length-1)+","+decimales;
//Ponemos el resultado
f[name_del_total].value=pepe;
}
</script>
</head>
<body>
<form name="f1">
<input class="texto" type="Text" value="1.100.123,12" name="pvd_batlarga"><br />
<input class="texto" type="Text" value="123.000,23" name="pvd_funda"><br />
<input class="texto" type="Text" value="1.000,22" name="pvd_protector"><br />
================ <input type="button" value="sumar" onclick="sumar()"><br />
<input class="texto" type="Text" name="total_pvd"><br />
</form>
</body>
</html>
Un saludo!
__________________ Cómo escribir
No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |