Question

Je ne sais pas ce qui me manque, mais je ne peux pas obtenir $c pour sortir correctement.

<?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

?>

Je m'excuse pour la question débutante.

Solution au problème:

<?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
?>

Merci à tous ceux qui ont répondu ... Je vais m'assurer de lire les informations complètes sur la fonction la prochaine fois!

Était-ce utile?

La solution

sqrt Renvoie un float, qui n'est pas un int, donc votre fonction ne renvoie rien. Laisser juste le is_int Chèque?

Autres conseils

sqrt Renvoie toujours un flotteur. Votre instruction IF est toujours fausse.

Si vous voulez faire le chèque, faites ceci:

$i = (int) $c;

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

Ce que cela fait est de lancer le flotteur à un int, et si le flotteur $c et le int $i sont égaux, alors il reviendra

sqrt Renvoie un float, c'est pourquoi is_int est toujours faux.

Si vous voulez vraiment vérifier s'il s'agit d'un entier, vous pouvez utiliser:

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

C'est la faute de frappe dans votre résultat

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

?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top