Warning: Division by zero in

Alberto Rivera rivera.alberto en gmail.com
Jue Dic 21 08:39:41 CLST 2006


Javier Valenzuela escribió:
> Alberto Rivera wrote:
>> Hola señores necesito molestar una vez más ya que no nuevamente no sé 
>> por donde va la micro. Tengo el siguiente error:
>>
>> *Warning*: Division by zero in 
>> */var/www/remunera1.3/includes/proctmpmes/consultas3.php* on line *95*
>>
>> *Warning*: Division by zero in 
>> */var/www/remunera1.3/includes/proctmpmes/consultas3.php* on line *96
>>
>> los cuales se repiten indefinidamente ...
>>
>> *esas líneas corresponden a la siguiente operación:
>>
>>   $totalhorasextra50=round(((($sueldobase/30)*7)/$numerohoras)*1.5);
>>   $totalhorasextra100=round(((($sueldobase/30)*7)/$numerohoras)*2);
>>
>> lo extraño de esto es que si le hago "echo $sueldobase" ó "echo 
>> $numerohoras" me entrega los valores sin problemas, incluso si hago 
>> un "echo $totalhorasextra50" también me entrega de buena forma 
>> calculado y todo... esta consulta está dentro de un ciclo que se los 
>> anoto ahora para que lo vean completo, haber si pueden ayudarme:
>>
>>     $sueldobaseing=$columna["sueldobase"];
>>    $complementarias=$columna["cantidadhorascomp"];
>>
>>     if($tipocontrato != '4') {
>>           $numerohoras=$complementarias;
>>           $sueldobase=($sueldobaseing);
>>           
>> $totalhorasextra50=round(((($sueldobase/30)*7)/$numerohoras)*1.5);
>>           
>> $totalhorasextra100=round(((($sueldobase/30)*7)/$numerohoras)*2);
>>           $reshe50=($he50*$totalhorasextra50);
>>           $reshe100=($he100*$totalhorasextra100);
>>           $totalhorasextra=($reshe50+$reshe100);
>> } else {
>>    $numerohoras=($basica+$media+$utp+$complementarias);
>>    $sueldobase=($sueldobaseing+$sueldobaseprof);
>>    
>> $totalhorasextra50=round(((($sueldobase/30)*7)/$numerohoras)*1.5);           
>>
>>    
>> $totalhorasextra100=round(((($sueldobase/30)*7)/$numerohoras)*2);            
>>
>>    $totalhorasextra=($reshe50+$reshe100);  }
>>
>>
>> ojalá me puedan ayudar
>>
>> salu2
> Como no se el numero de lineas de tu programa, esta claro que divides 
> por cero en algun momento, podrias hacer un "if" para que no entre 
> cuando sea cero y listo...
> Mi mejo depurador son los print y echo's XD!
los mios también pero al parecer no es lo más optimo, la cosa es que sí 
es necesario que entre incluso si es 0, de hecho insisto en que un 
numero dividido por 0 es 0, porqué tendría que salir el warning ???


salu2



Más información sobre la lista de distribución PHP