Domanda

Non sono sicuro di quello che mi manca, ma non riesco a ottenere $c in uscita correttamente.

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

?>
.

Mi scuso per la domanda principiante.

Soluzione al problema:

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

Grazie a tutti coloro che hanno risposto ... Assicurarmi di leggere le informazioni complete sulla funzione la prossima volta!

È stato utile?

Soluzione

sqrt restituisce un float, che non è un int, quindi la funzione non restituisce nulla.Seleziona il controllo is_int?

Altri suggerimenti

sqrt restituisce sempre un galleggiante.La tua dichiarazione se è sempre falsa.

Se vuoi fare il controllo, fallo:

$i = (int) $c;

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

Cosa fa è lanciare il galleggiante a un int, e se il GeneracodictagCode del Galleggiante e il $c INT sono uguali, quindi restituirà

sqrt restituisce un float, ecco perché is_int è sempre falso.

Se vuoi davvero controllare se è un numero intero, puoi usare:

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

che è TYPO nel tuo risultato

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

?>
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top