PHP - error de PHP al dividir

   
Vista:

error de PHP al dividir

Publicado por goyo_oz goyo_oz@hotmail.com (2 intervenciones) el 23/06/2015 15:01:28
buen día a todos, les comento que tengo una página web para una escuela donde se hacen cantidad de operaciones, sumas, restas, promedios, etc, etc. y por alguna extraña razón que espero me puedan ayudar, al realizar una división y comparar el resultado me sale algo irreal. Ya probé en tres distintas computadoras con apache 2.0.63 con php 5.2.10.

voy a tratar de resumir lo mas que se pueda, solo copien y peguen y veran que es muy corta la programación

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
echo "<br>error en operaciones";
 
$var=9.1 + 9.2 + 8.7; //sumo la calificacion de los tres examenes 
$var=$var/3; //divido entre el numero de examenes para obtener el promedio
echo "<br>el resultado es: ".$var; //el resultado es nueve, claro
 
//comparo ese resultado, si es mayor o igual a nueve lo felicito
if($var>=9)
	{ echo"<br>felicidades, es mayor o igual a nueve";
	}
else
	{echo "<br> la calificacion es menor de nueve"; //ERROR, no debería de entrar aqui, que pasa?
	}
 
//y continuamos en el error, la funcion INT nos devuelve el entero de un numero
echo"<br>el entero del resultado es:" .(int)$var; //de donde o como sale un ocho aqui??
 
?>

Saludos...
Gregorio Ríos
Cuautitlán Izcalli, Estado de México
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

error de PHP al dividir

Publicado por xve (5517 intervenciones) el 23/06/2015 17:36:42
Hola Goyo, a mi me sale correctamente!!! lo unico que he tenido que modificar, es quitar el (int)...

El resultado que obtengo es:
error en operaciones
el resultado es: 9
la calificacion es menor de nueve
el entero del resultado es:9


Es correcto, no? que valores te devuelve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error de PHP al dividir

Publicado por goyo_oz goyo_oz@hotmail.com (2 intervenciones) el 23/06/2015 17:52:35
No debería de aparecer el texto "la calificación es menor de nueve", ya que no es así.

debe aparecer "felicidades, es mayor o igual a nueve",

y la funcion int, aunque en este ejemplo no es de gran utilidad, en otros casos quita los decimales y me da solo el entero, por eso la pongo, pero me regresa un ocho, a ti no?, que versión de PHP tienes?... saludos y gracias por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de david

error de PHP al dividir

Publicado por david (13 intervenciones) el 23/06/2015 18:41:53
si quieres quitar los decimales es mejor usar la funcion roun(); ya que en la documentacion de php (int) en una nota de advertencia dice Nunca se debe convertir una fracción desconocida a un integer, ya que a veces puede conducir a resultados inesperados (http://php.net/manual/es/language.types.integer.php#language.types.integer.casting)

agrege ase linea a tu codigo y quedo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
echo "<br>error en operaciones";
 
$var=9.1 + 9.2 + 8.7; //sumo la calificacion de los tres examenes
$var=$var/3; //divido entre el numero de examenes para obtener el promedio
echo "<br>el resultado es: ".$var; //el resultado es nueve, claro
 
//comparo ese resultado, si es mayor o igual a nueve lo felicito
$var= round($var);
 
if($var>=9)
	{ echo"<br>felicidades, es mayor o igual a nueve";
	}
else
	{echo "<br> la calificacion es menor de nueve"; //ERROR, no debería de entrar aqui, que pasa?
	}
 
//y continuamos en el error, la funcion INT nos devuelve el entero de un numero
echo"<br>el entero del resultado es:" .(int)$var; //de donde o como sale un ocho aqui??
 
?>
y los mensajes salen asi
error en operaciones
el resultado es: 9
felicidades, es mayor o igual a nueve
el entero del resultado es:9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

error de PHP al dividir

Publicado por xve (5517 intervenciones) el 23/06/2015 19:51:12
Hola David, tienes toda la razón, no me habia dado cuenta...

Buscando un poco, he encontrado la solución, aunque no me preguntes el porque, porque lo desconozco...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
echo "<br>error en operaciones";
 
$var=9.1 + 9.2 + 8.7; //sumo la calificacion de los tres examenes
$var=$var/3; //divido entre el numero de examenes para obtener el promedio
echo "<br>el resultado es: ".$var; //el resultado es nueve, claro
 
//comparo ese resultado, si es mayor o igual a nueve lo felicito
if((string)(float)$var>=9)
{
	echo "<br>felicidades, es mayor o igual a nueve";
}
else
{
	echo "<br> la calificacion es menor de nueve"; //ERROR, no debería de entrar aqui, que pasa?
}
 
//y continuamos en el error, la funcion INT nos devuelve el entero de un numero
echo "<br>el entero del resultado es:".(string)(float)$var; //de donde o como sale un ocho aqui??
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar