Cita:
Iniciado por hmv Código PHP:
//Si restamos :
$valor1 = 160.70;
$valor2 = 160.60;
echo $valor1 - $valor2;
//Lo logico es que me de: 0.10, pero en realidad me da 0.099999999999994, y no entiendo pq, alguna duda??
No vale redondear, ya que en la calculadora normal/cientifica sale 0.10
Esto es perfectamente normal, debes de saber que el almacenamiento interno de cantidades fraccionarias es aproximada así que en operaciones de punto flotante lo que te regresa el lenguaje es lo mas aproximado a tu resultado.
Es decir que tienes una perdida, por lo cual te guste o no tienes que redondear la cantidad para obtener el resultado esperado.
Soluciones existen varias dependiendo de lo que necesites
Código PHP:
Ver original$valor1 = 160.70;
$valor2 = 160.60;
echo $valor1 - $valor2 . '<br>';
//Soluciones
echo round($valor1 - $valor2, 2) . '<br>';
echo bcsub($valor1, $valor2, 2);