Pregunta

No estoy seguro de lo que me estoy perdiendo, pero no puedo conseguirlo. $c para emitir correctamente.

<?php

function pythThm($a, $b){
    $a2 = pow($a, 2);
    $b2 = pow($b, 2);
    $c = sqrt($a2 + $b2);
    if(is_int($c)){return $c;}
}

echo pythThm(3, 4);
//outputs nothing, should be 5

?>

Pido disculpas por la pregunta de principiante.

Solución al problema:

<?php
function pythThm($a, $b){
$a2 = pow($a, 2);
$b2 = pow($b, 2);
$c = sqrt($a2 + $b2);
if($c - round($c) == 0){return $c;}
}

echo pythThm(4, 4); 
//returns nothing
echo pythThm(3,4);
//returns 5
?>

Gracias a todos los que respondieron... ¡Me aseguraré de leer la información completa sobre la función la próxima vez!

¿Fue útil?

Solución

sqrt devuelve un float, que no es un int, por lo que su función no devuelve nada.Simplemente deja fuera el is_int ¿controlar?

Otros consejos

sqrt siempre devuelve un flotador.Tu declaración if siempre es falsa.

Si quieres hacer la verificación haz esto:

$i = (int) $c;

if($c == $i) return $c

Lo que esto hace es convertir el flotador en un int, y si el flotador $c y el int $i son iguales, entonces regresará

sqrt devuelve un float, es por eso is_int siempre es falso.

Si realmente quieres comprobar si es un número entero, puedes usar:

if ((int)$c == $c)
    return $c;

Eso es un error tipográfico en tu resultado.

function pythThm($a, $b){
    $a2 = pow($a, 2);
    $b2 = pow($b, 2);
    $c = sqrt($a2 + $b2);
    return (int)$c;
}

echo pythThm(3, 4);
<?php

function pythThm($a, $b){
    $a2 = pow($a, 2);
    $b2 = pow($b, 2);
    $c =  sqrt($a2 + $b2);
   return $c;
}

echo pythThm(3, 4);
//outputs nothing, should be 5

?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top