2012-02-25 5 views
0

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

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

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

ответ

1

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

+0

hmm..I нужно только '$ c' те, которые являются целыми числами для этой задачи. Тем не менее, я думаю, что простой 'if ($ c-round ($ c) == 0)' сделал бы трюк. Благодаря! –

3

sqrt всегда возвращает поплавок. Оператор if всегда является ложным.

Если вы хотите сделать чек, сделать это:

$i = (int) $c; 

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

Что это отливают поплавок к междунар, и если поплавок $c и ИНТ $i равны, то он будет возвращать

0

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

function pythThm($a, $b){ 
    $a2 = pow($a, 2); 
    $b2 = pow($b, 2); 
    $c = sqrt($a2 + $b2); 
    return (int)$c; 
} 

echo pythThm(3, 4); 
0
<?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 

?> 
+0

это вернет все значения в виде целых чисел ... были ли они целыми или нет. –

+1

Нет необходимости в проверке 'is_int()', это всегда будет верно, из-за приведения '$ c' в int ... –

1

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

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

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

yep, я подумал о подобной проверке после просмотра первого комментария. Спасибо чувак! –

 Смежные вопросы

  • Нет связанных вопросов^_^