Eike: weiter bei einer graden Zahl nach Division

Hi!
Zugegeben der titel gibt nicht viel her. Mir ist nichts bessere eingefallen.

Also ich möchte in einer If bedingung überprüfen od das ergebnis einer Aufgabe genau auf eine Ganzzahl heraus kommt.

Also
if ($zahl/4 gleich ganzzahl)
{
...
}
mein problem ist, das prüfen ob das eine Zahl mit komma oder nicht ist.
die Bedingung soll nciht bei einer Zahl wie 1.2 oder 3.9 weitergehen.
sondern nur bei 1,2,3,4,5,6,7, usw.

  1. Hi,

    mein problem ist, das prüfen ob das eine Zahl mit komma oder nicht ist.

    das Problem hättest Du nicht, wenn Du statt der Division die Modulorechnung verwenden würdest. Übrigens ist eine gerade Zahl eine, die ohne Rest durch 2 teilbar ist.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo

      das Problem hättest Du nicht, wenn Du statt der Division die Modulorechnung verwenden würdest.

      Was soll das bringen?

      Übrigens ist eine gerade Zahl eine, die ohne Rest durch 2 teilbar ist.

      deutsches Sprach, schweres Sprach :o) hihi

      gruß

      1. Hello,

        alle Divisionen im PC-Prozessor (nicht die im CoProz) basieren im Prinzip auf der Rückmultiplikation, die ihrerseits wieder durch Addition vorgenommen wird...

        Die Modulorechnung bricht beim ganzzahligen Ergebnis ab und gibt den Rest zurück, während die Rechenalgorithmen für Gleitzahlen diesen Rest weiter zerlegen.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo,

          Aber hier ist doch nach dem Divisionsergebnis gefragt, oder?
          Was hat das mit modulo zu tun?

          gruß

          1. Hello,

            Aber hier ist doch nach dem Divisionsergebnis gefragt, oder?
            Was hat das mit modulo zu tun?

            *Ähäm!*

            Also was für eine Zahl (Datentyp) wird das Ergebnis denn wohl sein können, wenn das Modul === 0 ist?

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Eigebtlich will ich nur überprüfen pb eine Zahl ich eine Zahl mit oder ohne Rect habe!
              Das mit der ungenauigkeit ist wohl bei 16/4 wohl eher unwahrscheinlich.
              Wo es natürlich ungenau werden kann ist,24124122431598538475602393.73493/4=***,4337325.
              Aber das ist ja egal. Ob da nun rundungsfehler sind oder nicht, ich will ja nur wissen ob da eine Zahl ohne Kommar raus kommt.
              und ich denka da wo die 4 glatt rein geht wird kein rundungsfehler auftauchen.

              Schönen guten Abend

              1. Hi,

                Eigebtlich will ich nur überprüfen pb eine Zahl ich eine Zahl mit oder ohne Rect habe!

                ich habe ein Weilchen gebraucht, um in diesem Satz die Fehler als solche zu identifizieren.

                ist,24124122431598538475602393.73493/4=***,4337325.

                Du hast eine imaginäre Zahl getippt. Bitte drehe Deine Tastatur um 90°.

                Aber das ist ja egal. Ob da nun rundungsfehler sind oder nicht, ich will ja nur wissen ob da eine Zahl ohne Kommar raus kommt.

                Ja. Nutze die Modulo-Rechnung.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
      2. Moin,

        Übrigens ist eine gerade Zahl eine, die ohne Rest durch 2 teilbar ist.

        deutsches Sprach, schweres Sprach :o) hihi

        Was ist an Hajos Satz flasch? Ich halte es für möglich und stilistisch sogar für sinnvoll, dass "eine Zahl" hier auf "eine" verkürzt wurde.

        Viele Grüße

        Swen Wacker

  2. Hallo Eike.

    mein problem ist, das prüfen ob das eine Zahl mit komma oder nicht ist.

    Dann prüfe doch mittels is_int() nach, ob die Zahl _kein_ float ist.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    Try it: Become an Opera Lover in 30 days
    1. Hello,

      Dann prüfe doch mittels is_int() nach, ob die Zahl _kein_ float ist.

      Was ist denn 297.000000000000000000000 für ein Datentyp?

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hallo Tom.

        Was ist denn 297.000000000000000000000 für ein Datentyp?

        Float?

        Gruß, Ashura

        --
        Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
        Try it: Become an Opera Lover in 30 days
    2. Danke!
      Hat mir sehr geholfen!

  3. Hello,

    einfach beantwortet könnte man meinen, dass man nur das double()-Ergebnis der Division mit dem int()-Ergebnis vergleichen müsste.

    Aber dieses Problem ist wirklich nicht trivial!

    Durch die Abbildung auf Zweierpotenzen haben Computer nun mal eine begrenzte Genauigkeit und durch eine reine Rechnenoperation wirst Du diese Aufgabe also nicht wirklich lösen können.

    Du müsstest daher einen Algorithmus für die Primfaktorenzerlegung bemühen, um das Endergebnis zu erzeugen. Wenn man zwei ganze Zahlen miteinander MULTIPLIZIERT kann auch nur eine Ganzzahl wieder dabei herauskommen.

    Wenn also Dein Dividend eine Ganzzahl ist, dann könnte das einen Lösungsweg aufzeigen...

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  4. Hallo

    Also
    if ($zahl/4 gleich ganzzahl)
    {
    ...
    }

    ???

    meinst du

    $b=(int)$a; //umwandlung in int und zuweisung nach $b
    if($b===$a) echo "JA"; //überprüfung ob a integer ist...
    else echo "NEIN";

    ?

    Beispiel:
    $a (die Zahl (bei dir $zahl)) ist 4.5.
    => ausgabe: JA

    gruß