Seite 1 von 1

prüfen, ob eine rechnung ein ganzzahliges ergebnis hat

Verfasst: 24.12.2006 14:36
von langeweile
ich würde gerne ein script bauen, mit einem teil, der so aussieht:


$var1 = $var2 / $var3;
if ($var1 = <ganzzahlig)
.....


gibt es einen php befehl, welcher prüft ob eine zahl ganzzahlig ist, also keine nachkommastellen hat?

Verfasst: 24.12.2006 14:45
von Jan500
hi

mach

Code: Alles auswählen

if( is_int($var1)) 
{ 
....
}
wenn du willst, das der auch strings auswertet mach

Code: Alles auswählen

if( is_int(intval($var1))) 
{ 
....
}
was genau willst du denn machen? evtl hilft dir auch die funktion round() weiter...

Jan

Verfasst: 25.12.2006 00:00
von gn#36
Jan500 hat geschrieben:

Code: Alles auswählen

if( is_int(intval($var1))) 
{ 
....
}
Das halte ich nicht unbedingt für eine sinnvolle Abfrage, schließlich konvertiert die Funktion intval in einen Integer (also Zahlenwert ohne Nachkommastellen), daher dürfte nie etwas anderes als true herauskommen.

Ich denke das müsste auch ohne Konvertierung funktionieren, denn wenn der String eine gültige Zahl ist, dann wird diese Verwendet, andernfalls wird der Wert 0.

Verfasst: 25.12.2006 00:39
von fanrpg

Code: Alles auswählen

function ganze_zahl( $zahl )
{
    if( strpos($zahl, '.') )
    {
        return false;
    }
    else
    {
        return true;
    }
}

if( ganze_zahl($zahl) )
{
// Tue irgendwas wenn zahl ist ganz
}
Denke das dürfte funktionieren, da nicht ganze Zahlen ja im Normalfall einen Punkt haben dürften.

Verfasst: 25.12.2006 00:48
von gn#36
Zumindest wenn man vernachlässigt dass die Variable auch nicht-numerisch sein könnte...

Code: Alles auswählen

if(preg_match("/^[0-9]+$/",$var1)
{
//Var ist integer
}

Verfasst: 26.12.2006 16:40
von Miriam
Der Quotient ist dann ganzzahlig, wenn die Ganzzahldivsion auch 0 ist.

Code: Alles auswählen

$var3 =  $var1/$var2;
if (!($var1%$var2)) echo $var3 . " ist ganzzahlig";
else echo $var3 . " ist nicht ganzzahlig";