質問

私が欠けているものがわからないが、$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
?>
.

答えたすべての人のおかげです...次回の機能についての全情報を読むようにします!

役に立ちましたか?

解決

sqrtfloatを返します。これはintではないため、関数は何も返しません。is_intチェックを終了するだけですか?

他のヒント

sqrtは常にfloatを返します。あなたのIFステートメントは常にfalseです。

小切手をしたい場合は、これを行います。

$i = (int) $c;

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

これがin intにfloatをキャストするもので、float $cとint $iが等しい場合は、が返されます。

sqrtfloatを返します。

本当に整数かどうかを確認したい場合は、次のようにします。

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