Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky

Ver más
  • 13,065 Miembros
  • 9,531 Temas
  • 3,449 Seguidores
  • 0

[Ayuda] Comparar decimales PHP

Bueno gente tengo un problema con algo que estoy armando, les comento :

Leo un csv y cuento cantidad de saltos de lineas y cantidad total de la suma de una columna:


<?    if (($handle fopen($nombre'r')) !== FALSE)
    { 
    while ((
$data fgetcsv($handle1000';')) !== FALSE)
    { 
$totalfilas++;
$costo_seg str_replace(',','.',$data[2]);
$mitotal +=$costo_seg;

    } 
    } 
?>



Hasta aca va todo bien, el problema es en la comparación:



<?    if ($totalfilas == $uscasos and $mitotal == $costos?>


En esta condición primero compara cant. de filas que se leyó con la cantidad de filas que ingresa el usuario (funciona) pero después la otra comparación cuando el numero es ej 12 154 66 (enteros) funciona pero cuando es por ej 15.5 654.45 54.22 (decimales) no se cumple nunca la condición no se porque.
Si alguno puede darme una mano.
  • 0
  • 0Calificación
  • 0Seguidores
  • 94Visitas
  • 0Favoritos

5 respuestas

@pichoncitotv dijo Hace más de 3 meses:

Matemáticamente 15.1 no es igual a 15 ... si realmente no importan esos decimales de sobra, podes redondear un decimal a su numero entero más cercano, hacia arriba o hacia abajo.

floor() , round() y ceil() usa la conveniente.

@pichoncitotv dijo Hace más de 3 meses:

imprimilos con var_dump() para saber que tipo de datos son exactamente

@soloxd dijo Hace más de 3 meses:

Tenes que usar esta función http://php.net/manual/es/function.bccomp.php , por que los float pierden precisión cuando los comparas o sumas (lo leí hace un tiempo en un foro, no recuerdo cual)

Tienes que ser miembro para responder en este tema