Вопрос

Я не уверен, чего мне не хватает, но я не могу получить $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
?>

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

Это было полезно?

Решение

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

Другие советы

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

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

$i = (int) $c;

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

Это приводит к приведению числа с плавающей точкой к int, и если число с плавающей запятой $c и int $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

?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top