Ganz- oder Kommazahl?
nobbi
- php
0 Edgar Ehritt0 bleicher
0 Der Martin
0 Beat0 nobbi0 suit
Hallo,
Nach dieser Berechnung:
$felder= ($z+$rpl+$vf)/ 2 + $tk;
muß ich prüfen, ob das Ergebnis eine Ganz- oder Kommazahl ist.
if(!is_int($felder)){
$felder + .5;
$rpl + 1;
}
das klappt aber so nicht.
Warum?
Gruß Nobbi
Hallo Nobbi,
muß ich prüfen, ob das Ergebnis eine Ganz- oder Kommazahl ist.
Typen werden ganz automatisch von PHP vergeben. Daher stellt sich die Frage, warum Du das musst. Was genau willst Du also machen?
Gruß aus Berlin!
eddi
Grüße,
Typen werden ganz automatisch von PHP vergeben.
wenn es aber ganz schlimm ist - kannst du mal sehen, was gettype() rausspuckt - ist keine gute lösung, aber für den test mal?
MFG
bleicher
Hi,
if(!is_int($felder)){
$felder + .5;
$rpl + 1;
}
also auf Deutsch:
Wenn $felder kein Integertyp ist,
dann berechne $felder+0.5 und vergiss das Ergebnis wieder
und berechne $rpl+1 und vergiss das Ergebnis auch wieder
das klappt aber so nicht.
Was bedeutet das?
Abgesehen davon prüft is_int() nur, "whether the type of a variable is integer". Dabei wird nicht der momentane Wert der Variablen betrachtet. So ist beispielsweise sin(0) exakt 0, aber das Ergebnis von sin() ist per definitionem ein float-Wert (also eigentlich 0.0) und is_int() würde false liefern.
Wenn du eine Unterscheidung nach dem aktuellen Variablenwert willst, musst du selbst testen. So könnte man etwa testen, ob $x==floor($x) ist.
So long,
Martin
Nach dieser Berechnung:
$felder= ($z+$rpl+$vf)/ 2 + $tk;
muß ich prüfen, ob das Ergebnis eine Ganz- oder Kommazahl ist.if(!is_int($felder)){
$felder + .5;
// warum wirfst du das Ergebnis fort?
$rpl + 1;
// warum wirfst du das Ergebnis fort?
}
Warum nicht straight forward?
$felder= int( ($z+$rpl+$vf)/ 2 + $tk ) + 1;
mfg Beat
Hallo,
Nach dieser Berechnung:
$felder= ($z+$rpl+$vf)/ 2 + $tk;
muß ich prüfen, ob das Ergebnis eine Ganz- oder Kommazahl ist.
if(!is_int($felder)){
$felder + .5;
$rpl + 1;
}das klappt aber so nicht.
Warum?Gruß Nobbi
Es geht schlicht und ergreifend darum, dass, sollte das Ergebnis eine Ganzzahl sein, ist die Sache OK. Ansonsten muss die Variable $felder und die Variable $rpl manipuliert werden.
Ergo muss ich abprüfen ist das Ergebnis eine Ganzzahl oder eine Kommazahl.
Warum das so sein muss spielt doch keine Rolle :o)
Gruß
Nobbi
Ergo muss ich abprüfen ist das Ergebnis eine Ganzzahl oder eine Kommazahl.
Warum das so sein muss spielt doch keine Rolle :o)
Doch, das spielt insofern eine Rolle alsdass man dir vernünftige Lösungsvorschläge geben kann - ansonsten kann man nur Blind über den Irrsinn deines Vorhabens spekulieren.
Ggf. hilft dir ja ein simples floor(), ceil() oder round() gefolgt von (int)