Testen ob Zahl gerade ist

Eine Zahl, die geteilt durch zwei einen Rest von 0 ergibt, ist gerade.
Also musst Du den Rest der Division bestimmen und mit 0 vergleichen:
PHP:
if (($zahl%2)==0) {
    echo $zahl." ist gerade";
}
Gruß hpvw
 
teil die Zahl durch 2, dann modulo( such bei google nach modulo für php) sie dann kannst du mit if() ob modulo was ausgibt. Oder such bei google da gibts sicher ne vordefinierte funktion dafür.
 
Code:
if ( $i % 2 == 0){
    echo 'Zahl ist gerade!';
}

Wenn der Rest einer Division durch 2, 0 ergibt ist die Zahl gerade!
 
PHP:
 if(($i/$e)%2) == 0){ 


//durch 2 teilbar (kein rest bei teilung durch 2) 


}else{ 
//ungerade zahl (nicht durch 2 teilbar (es bleibt ein rest wenn man die zahl durch 2 

//dividiert))

}

//edit:
naja, da war wer schneller
 
Ach sorry ich hab gerade statt ganzzahlig geschrieben, aber danke :-) . Also wie kann ich herausfinden ob eine Zahl ganzzahlig ist?
 
LOL
Wenn Du Zahlen hast, ist es besser, wenn Du auch mit Zahlen arbeitest und nicht auf das Zeichen "Komma" acht gibst:
PHP:
if (round($i/$e)==($i/$e)) {
    //Ergebnis ist eine Ganzzahl 
}

//oder IMHO elganter:
//(Division ergibt Ganzzahl, wenn $i durch $e teilbar ist)
if (($i%$e)==0) {
    echo "Division von i durch e ergibt eine ganze Zahl";
}
Gruß hpvw

EDIT:
[phpf]is_int[/phpf] wird vermutlich nicht funktionieren:
http://php.speedbone.de/manual/de/language.operators.arithmetic.php hat gesagt.:
Der Divisions-Operator ("/") gibt immer eine Fließkommazahl zurück, sogar wenn die zwei Operanden Ganzzahlen sind (oder Zeichenketten, die nach Ganzzahlen umgewandelt wurden).
Und eine Fließkommazahl muss kein Komma (oder Punkt) enthalten:
PHP:
<?
    echo (1/10000000000000000000); // <- Kein Punkt und Komma
    $i=3/1.5;                      // <- 2, aber float
    echo "<br>";
    var_dump($i);
    $ii=is_int($i);                // <- false
    echo "<br>";
    var_dump($ii);

    /*
     * Ausgabe:
     *   1E-019
     *   float(2)
     *   bool(false)
     */
?>
 
Zuletzt bearbeitet:
Zurück