nobbi: Ganz- oder Kommazahl?

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

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

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

      --
      __________________________-

      FirefoxMyth
  2. 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

    --
    Was du heute kannst besorgen,
    das geht sicher auch noch morgen.
  3. 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

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  4. 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

    1. 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)