Ver Mensaje Individual
  #10 (permalink)  
Antiguo 16/01/2007, 15:38
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 7 meses
Puntos: 45
Re: :si: el punto forma parte del numero:'(

No sé dónde puede estar tu problema porque no me posteas ningún código, pero bueno. La implantación a un formulario es muy sencilla:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title> New Document </title>
</
head>

<
body>

N1 <input type="text" id="caja1" size="30" value="4.532,234" /><br />
N2 <input type="text" id="caja2" size="30" value="55,56002" /><br />
N3 <input type="text" id="caja3" size="30" value="541.867,078" /><br />
N4 <input type="text" id="caja4" size="30" value="58.795,65247" /><br />
<
input type="button" value="Resultado: " onclick="sumaTodos()" /> <input type="text" id="resultado" size="30">

<
script>


function 
formato_PC(n) {
    return 
Numbern.replace(/./g,"").replace(/,/g,".") );
}
function 
formato_HUM(n) {
    
n=String(n).split(".");        //el entero es n[0] y la parte decimal es n[1]
    
n[0]=n[0].split("").reverse().join("");        //le damos la vuelta, asi podemos tocarlo desde atras sin complicaciones
    
n[0]=n[0].replace(/(d{3})(?=d)/g,"$1.");        
    
//ver comentario abajo
    
n[0]=n[0].split("").reverse().join("");        //lo reestablecemos a su orden original
    
return n.join(",");        //unimos la parte entera con la decimal
}

function 
suma(arr) {
    var 
total=0;
    for(var 
i=0;i<arr.length;i++)
        
total+=formato_PC(arr[i]);
    return 
formato_HUM(total);


function 
sumaTodos() {
    var 
arr=new Array();
    for(var 
a=1a<=4a++) {
        
arr[arr.length]=document.getElementById("caja"+a).value;
    }
    
document.getElementById("resultado").value=suma(arr);
}

</script>


</body>
</html> 
No le veo mas complicación. Este podría ser un ejemplo valido para sumar todas las cajas.


Por supuesto me han vuelto a salir mal las expresiones regulares:
Una es esta:
return Number( n.replace(/\./g,"").replace(/,/g,".") );
Y la otra es:
n[0]=n[0].replace(/(\d{3})(?=\d)/g,"$1.");



Espero que así puedas arreglartelas.

Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.