prüfen, ob eine rechnung ein ganzzahliges ergebnis hat

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

prüfen, ob eine rechnung ein ganzzahliges ergebnis hat

Beitrag 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?
Benutzeravatar
Jan500
Ehemaliges Teammitglied
Beiträge: 4199
Registriert: 01.03.2003 21:32
Wohnort: Hamburg
Kontaktdaten:

Beitrag 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
"Life begins at 40 Knots...!" :D
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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
}
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag 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";
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „Coding & Technik“