Возврат функции: PHP

Я не уверен, что мне не хватает, но я не могу получить $c правильно выводить.

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

?>

Я прошу прощения за вопрос новичка.

Решение проблемы:

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

Спасибо всем, кто ответил... Я обязательно прочитаю полную информацию о функции в следующий раз!

5 ответов

Решение

sqrt возвращает float, который не является int, так что ваша функция ничего не возвращает. Просто оставь is_int проверять?

sqrt всегда возвращает поплавок. Ваше заявление if всегда ложно.

Если вы хотите сделать проверку, сделайте это:

$i = (int) $c;

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

То, что это делает, бросает float к int, и если float $c и инт $i равны, тогда он вернется

sqrt возвращает float, вот почему is_int всегда ложно.

Если вы действительно хотите проверить, является ли оно целым числом, вы можете использовать:

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

Это опечатка в вашем результате

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

?>
Другие вопросы по тегам