سؤال

لست متأكدًا مما أفتقده، لكن لا يمكنني الحصول عليه $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 و كثافة العمليات $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