문제

I'm not sure what I'm missing, but I can't get $c to output correctly.

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

?>

I apologize for the beginner question.

Solution to problem:

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

Thanks to all who answered...I'll make sure to read the full info about the function next time!

도움이 되었습니까?

해결책

sqrt returns a float, which is not an int, so your function returns nothing. Just leave off the is_int check?

다른 팁

sqrt always returns a float. Your if statement is always false.

If you want to do the check, do this:

$i = (int) $c;

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

What this does is cast the float to an int, and if the float $c and the int $i are equal, then it will return

sqrt returns a float, that's why is_int is always false.

If you really want to check if it's an integer, you can use:

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

That is typo in your result

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

?>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top