Hilfe bei einer Übung

  • Hallo,


    ich habe Probleme bei der Übung mit der Kartenreservierung. ICh kann zwar ausschließen, dass Text als Karten Anzahl eingegeben wird, weiß aber absolut nicht, wie ich nun herausfinde ob eine Kommazahl eingegeben wurde oder nicht. Womit mache ich das?


    Freue mich auf Hlfe


    MfG
    Eidechse

  • Dankeschön, mit strpos hab ichs jetzt geschafft.


    AUf preg_match bin ich auch schon gestoßen, aber das find ich recht kompliziert und umständlich, da anscheinend wenn man 1.00 aussortiert, weil kommazahl, wird 1.0 nicht als Kommazahl erkannt, dafür müsste man also 2 Bedingungen schreiben, finde ich persönlich etwas blöd....Oder ich habe einfach was falsch verstanden oder gemacht ;)


    MfG
    Eidechse

  • Was mir nur noch aufgefallen ist, man sollte nicht True oder False abfragen, da dann nicht erkannt wird, wenn der Punkt am Anfang steht, das ist natürlich nicht sinn der sache, da sollte man dann ">= 0" Abfragen, denke ich mal =P....Wollte ich nur mal gesagt haben damit ich mich gut fühl *lach*


    EDIT: Gut ich nehm alles zurück, dann bekommt man immer nur einen Fehler zustande. Wenn also der Punkt am Anfang der eingabe steh funktioniert das nicht.....Das ist schon wieder doof.

  • Naja, Fahler nicht dierekt...ein Fehlerhaftes Programm. PHP definiert ja 0 als False und alles darüber als True. Nungut, strpos gibt also die Position von dem gesuchten Wert (hier: ".") an. Wenn jetzt jemand kommt und den Punkt aber am Anfang setzt ist die Position = 0, also False. Wenn mal also abfragt ob der Wert >=1 ist, dann funktioniert es solange der Punkt nicht am anfang steht. Steht der Punkt aber am Anfang müsste man abfragen ob >= 0. Da nun aber die Bedingung IMMER zutrift (weil wenn kein Punkt dann ja auch = 0) läuft die IF-Anweisung auch immer durch und man bekommt jedesmal eine Meldung, dass nur ganzzahlen verwendet werden dürfen =P

  • Dafür gibt es Vergleich mit drei Gleichheitszeichen, mit denen wird auch der Typ vergleichen.
    D.h. 0 == false ist wahr, aber 0 === false ist falsch.


    Bei dir müsstest du dann mit drei Gleichheitszeichen prüfen, ob strpos false zurückgibt (strpos(var) === false), der Punkt also wirklich nicht vorkommt.

  • Das ist doch gerade das Problem. strpos gibt die Position des gesuchten Zeichens an und das erste Zeichen ist Null. Strpos gibt halt keinen boolschen Wert aus, sondern eine Zahl.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!