Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2005, 05:01
Boku
 
Fecha de Ingreso: noviembre-2005
Mensajes: 42
Antigüedad: 19 años, 1 mes
Puntos: 0
Exclamación Suma de decimales

Tengo una función que suma números decimales, pero el problema surge cuando sumo números con un solo decimal, a veces me sale una ristra inmenso de números del tipo: 3.00000009 por ejemplo. Lo raro es que solo pasa a veces. Cual puede ser la causa? Hay alguna forma de hacerle un redondeo solo a la parte decimal para que muestre como mucho 2 decimales? No me vale con truncar la cadena.

La función es:

Código PHP:
function totalesExp(){
    var 
campo;
    var 
tope;
    var 
filasGrupo;
    var 
filasParciales;
    var 
total 0;
    var 
value 0;
    var 
valorTope 0;
    
    for(
1<= (parseInt(document.getElementById('parcExp').value)); m++){
        
campo "filasGrExp" m;
        
filasGrupo parseInt(document.getElementById(campo).value) - 1;
        
campo "filasParcialExp" m;
        
filasParciales parseInt(document.getElementById(campo).value);
        for(
n=(filasParciales filasGrupo); n<filasParcialesn++){
            
campo "chkExperienciaBaremo" n;
            if(
document.getElementById(campo).checked == true){
                
campo "txtExpPuntuacion" n;
                
total += parseFloat(trim(document.getElementById(campo).value));
            }
        }
        
campo "parcialExp" m;
        
tope "topeExp" m;
        
valorTope parseFloat(document.getElementById(tope).value);
        
document.getElementById(campo).value total;

        if(
valorTope != "0"){
            if(
total valorTope){
                
alert("El valor de la puntuacion correspondiente a la autobaremacion para un grupo no puede pasar el tope del grupo, el valor será truncado");
                
document.getElementById(campo).value valorTope;
            }
        }
        
total 0;
        
        
//Aqui calculo el total
        
campo "parcialExp" m;
        
value += parseFloat(document.getElementById(campo).value);
    }
    return 
value;