Frage

Ich bin mir nicht sicher, was mir fehlt, aber ich kann es nicht verstehen $c um korrekt auszugeben.

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

?>

Ich entschuldige mich für die Anfängerfrage.

Lösung des Problems:

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

Danke an alle, die geantwortet haben...Ich werde beim nächsten Mal die vollständigen Informationen über die Funktion lesen!

War es hilfreich?

Lösung

sqrt gibt ein zurück float, was kein ist int, ihre Funktion gibt also nichts zurück.Lassen Sie einfach die is_int scheck?

Andere Tipps

sqrt gibt immer einen float zurück.Ihre if-Anweisung ist immer falsch.

Wenn Sie die Überprüfung durchführen möchten, tun Sie dies:

$i = (int) $c;

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

Was dies bewirkt, ist, den Float in ein int zu werfen, und wenn der Float $c und der int $i sind gleich, dann wird es zurückkehren

sqrt gibt ein zurück float, deshalb is_int ist immer falsch.

Wenn Sie wirklich überprüfen möchten, ob es sich um eine Ganzzahl handelt, können Sie verwenden:

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

Das ist ein Tippfehler in Ihrem Ergebnis

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

?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top