Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2016, 11:17
erpakillo
 
Fecha de Ingreso: diciembre-2014
Mensajes: 13
Antigüedad: 9 años, 11 meses
Puntos: 0
Problema con decimales al hacer operaciones matemáticas

Hola, tengo el siguiente problema. Estoy calculando con javascript lo que cuesta cada trabajador según las horas que haya trabajado. Después, al final, estoy sumando el total de horas y el total de importe de todos los trabajadores. El problema es el siguiente: los números enteros van perfectos, pero al ponerle decimales en el campo horas (el campo costeporhora está tomado desde la BD y tiene dos decimales) sale el resultado de la operación bien pero con muchos decimales, y entonces no me hace bien el calculo en el campo de total horas y total importe horas.¿Como puedo hacer para limitar el resultado de dichos campos a dos decimales? ¿O como puedo hacer que calcule teniendo tantos decimales? gracias por ayudarme.

este es el formulario donde se introducen los datos y donde se muestran los resultados:

Código PHP:
           <table width="914" border="0">
              <tbody>
    <tr>
      <td width="17">Gastos de pintura:</td>
      <td width="11"><input name="gastospintura" type="text" id="gastospintura" onKeyUp="sumar2();" /></td>
      
    </tr>
    <tr>
      <td>Gastos de recambios:</td>
      <td><input name="gastosrecambios" type="text" id="gastosrecambios" onKeyUp="sumar2();"/></td>
     
    </tr>
    <tr>
      <td><h3>Puesto</h3></td>
      <td><h3>Trabajador</h3></td>
      <td><h3>Coste por hora</h3></td>
      <td><h3>Horas</h3></td>
      <td><h3>Total Trabajador</h3></td>
     
    </tr>
    <tr>
      <td bgcolor="#2E2EFE"><input name="puestotrabajador1" readonly type="text" id="puestotrabajador1"   value="<?php echo $tra1['puesto']?>" /></td>
      <td bgcolor="#2E2EFE"><input name="trabajador1" readonly type="text" id="trabajador1"   value="<?php echo $tra1['nombre']?>" /></td>
      <td><input name="costehoratrabajador1" style="width:80px" readonly onKeyUp="sumartrab1();" type="number" id="costehoratrabajador1"  value="<?php echo $tra1['costehora']?>" /></td>
      <td><input name="horastrabajador1" style="width:80px" type="number" onmouseout="sumarhoras();"onKeyUp="sumartrab1();"id="horastrabajador1" /></td>
      <td><input name="totaltrabajador1" type="number" id="totaltrabajador1"  onmouseout="importetotalhoras();"/></td>
    </tr>
    <tr>
      <td bgcolor="#2E2EFE"><input name="puestotrabajador9" readonly type="text" id="puestotrabajador9"   value="<?php echo $tra9['puesto']?>" /></td>
      <td bgcolor="#2E2EFE"><input name="trabajador9" readonly type="text" id="trabajador9"   value="<?php echo $tra9['nombre']?>" /></td>
      <td><input name="costehoratrabajador9" style="width:80px" readonly onKeyUp="sumartrab9();" type="number" id="costehoratrabajador9"  value="<?php echo $tra9['costehora']?>"  /></td>
          <td><input name="horastrabajador9" onmouseout="sumarhoras();" style="width:80px" type="number" onKeyUp="sumartrab9();" id="horastrabajador9" /></td>
      <td><input name="totaltrabajador9" type="number" id="totaltrabajador9"  onmouseout="importetotalhoras();"/></td>     
    </tr>
    <tr>
      <td bgcolor="#6E6E6E"><input name="puestotrabajador3" readonly type="text" id="puestotrabajador3"   value="<?php echo $tra3['puesto']?>" /></td>
      <td bgcolor="#6E6E6E"><input name="trabajador3" readonly type="text" id="trabajador3"   value="<?php echo $tra3['nombre']?>" /></td>
      <td><input name="costehoratrabajador3" style="width:80px" readonly onKeyUp="sumartrab3();" type="number" id="costehoratrabajador3"  value="<?php echo $tra3['costehora']?>" /></td>
      <td><input name="horastrabajador3" style="width:80px" type="number" onKeyUp="sumartrab3();" id="horastrabajador3" /></td>
      <td><input name="totaltrabajador3" type="number" id="totaltrabajador3"  onmouseout="importetotalhoras();"/></td>    
    </tr>
    <tr>
      <td bgcolor="#6E6E6E"><input name="puestotrabajador4" readonly type="text" id="puestotrabajador4"   value="<?php echo $tra4['puesto']?>" /></td>
      <td bgcolor="#6E6E6E"><input name="trabajador4" readonly type="text" id="trabajador4"   value="<?php echo $tra4['nombre']?>" /></td>
      <td><input name="costehoratrabajador4" style="width:80px" readonly onKeyUp="sumartrab4();" type="number" id="costehoratrabajador4"  value="<?php echo $tra4['costehora']?>" /></td>
         <td><input name="horastrabajador4" style="width:80px" type="number" onKeyUp="sumartrab4();" id="horastrabajador4" /></td>
      <td><input name="totaltrabajador4" type="number" id="totaltrabajador4"  onmouseout="importetotalhoras();"/></td>     
    </tr>
    <tr>
      <td bgcolor="#6E6E6E"><input name="puestotrabajador2" readonly type="text" id="puestotrabajador2"   value="<?php echo $tra2['puesto']?>" /></td>
      <td bgcolor="#6E6E6E"><input name="trabajador2" readonly type="text" id="trabajador2"   value="<?php echo $tra2['nombre']?>" /></td>
      <td><input name="costehoratrabajador2" style="width:80px" readonly onKeyUp="sumartrab2();" type="number" id="costehoratrabajador2"  value="<?php echo $tra2['costehora']?>" /></td>
       <td><input name="horastrabajador2" style="width:80px" type="number" onKeyUp="sumartrab2();" id="horastrabajador2" /></td>
      <td><input name="totaltrabajador2" type="number" id="totaltrabajador2"  onmouseout="importetotalhoras();"/></td>     
    </tr>
    <tr>
      <td bgcolor="#6E6E6E"><input name="puestotrabajador10" readonly type="text" id="puestotrabajador10"   value="<?php echo $tra10['puesto']?>" /></td>
      <td bgcolor="#6E6E6E"><input name="trabajador10" readonly type="text" id="trabajador10"   value="<?php echo $tra10['nombre']?>" /></td>
      <td><input name="costehoratrabajador10" style="width:80px" readonly onKeyUp="sumartrab10();" type="number" id="costehoratrabajador10"  value="<?php echo $tra10['costehora']?>" /></td>
       <td><input name="horastrabajador10" style="width:80px" type="number" onKeyUp="sumartrab10();" id="horastrabajador10" /></td>
      <td><input name="totaltrabajador10" type="number" id="totaltrabajador10"  onmouseout="importetotalhoras();"/></td>     
    </tr>
    <tr>
      <td bgcolor="#DF0101"><input name="puestotrabajador5" readonly type="text" id="puestotrabajador5"   value="<?php echo $tra5['puesto']?>" /></td>
      <td bgcolor="#DF0101"><input name="trabajador5" readonly type="text" id="trabajador5"   value="<?php echo $tra5['nombre']?>" /></td>
      <td><input name="costehoratrabajador5" style="width:80px" readonly onKeyUp="sumartrab5();" type="number" id="costehoratrabajador5"  value="<?php echo $tra5['costehora']?>" /></td>
        <td><input name="horastrabajador5" style="width:80px" type="number" onKeyUp="sumartrab5();" id="horastrabajador5" /></td>
      <td><input name="totaltrabajador5" type="number" id="totaltrabajador5"  onmouseout="importetotalhoras();"/></td>     
    </tr>
    <tr>
      <td bgcolor="#DF0101"><input name="puestotrabajador6" readonly type="text" id="puestotrabajador6"   value="<?php echo $tra6['puesto']?>" /></td>
      <td bgcolor="#DF0101"><input name="trabajador6" readonly type="text" id="trabajador6"   value="<?php echo $tra6['nombre']?>" /></td>
      <td><input name="costehoratrabajador6" style="width:80px" readonly onKeyUp="sumartrab6();" type="number" id="costehoratrabajador6"  value="<?php echo $tra6['costehora']?>" /></td>
        <td><input name="horastrabajador6" style="width:80px" type="number" onKeyUp="sumartrab6();" id="horastrabajador6" /></td>
      <td><input name="totaltrabajador6" type="number" id="totaltrabajador6"  onmouseout="importetotalhoras();"/></td>    
    </tr>
    <tr>
      <td bgcolor="#DF0101"><input name="puestotrabajador7" readonly type="text" id="puestotrabajador7"   value="<?php echo $tra7['puesto']?>" /></td>
      <td bgcolor="#DF0101"><input name="trabajador7" readonly type="text" id="trabajador7"   value="<?php echo $tra7['nombre']?>" /></td>
      <td><input name="costehoratrabajador7" style="width:80px" readonly onKeyUp="sumartrab7();" type="number" id="costehoratrabajador7"  value="<?php echo $tra7['costehora']?>" /></td>
        <td><input name="horastrabajador7" style="width:80px" type="number" onKeyUp="sumartrab7();" id="horastrabajador7" /></td>
      <td><input name="totaltrabajador7" type="number" id="totaltrabajador7"  onmouseout="importetotalhoras();"/></td>    
    </tr>
    <tr>
      <td bgcolor="#DF0101"><input name="puestotrabajador8" readonly type="text" id="puestotrabajador8"   value="<?php echo $tra8['puesto']?>" /></td>
      <td bgcolor="#DF0101"><input name="trabajador8" readonly type="text" id="trabajador8"   value="<?php echo $tra8['nombre']?>" /></td>
      <td><input name="costehoratrabajador8" style="width:80px" readonly onKeyUp="sumartrab8();" type="number" id="costehoratrabajador8"  value="<?php echo $tra8['costehora']?>" /></td>
         <td><input name="horastrabajador8" style="width:80px" type="number" onKeyUp="sumartrab8();" id="horastrabajador8" /></td>
      <td><input name="totaltrabajador8" type="number" id="totaltrabajador8" onmouseout="importetotalhoras();"/></td>   
    </tr>
       <tr>
      <td bgcolor="#2E2EFE" >Pintores</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>   
    </tr>
    <tr>
      <td bgcolor="#6E6E6E">Chapistas</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><h3>Total horas:</h3></td>
      <td><h3>Importe Total Horas:</h3></td>
     
    </tr>
    <tr>
      <td bgcolor="#DF0101">Montadores</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input name="totalhoras" type="number" style="width:80px" id="totalhoras" /></td>
      <td><input name="importetotalhoras" type="number" id="importetotalhoras" onmouseout="sumar2();"/></td>   
    </tr>
        <tr>
      <td><h3>Total gastos reparación:</h3></td>
      <td><input name="importetotalgastos" type="number" id="importetotalgastos"/></td>  
    </tr>
  </tbody>
</table>
Pongo debajo en un comentario las funciones javascript para que quepa todo.