Technician Geschrieben 30. Dezember 2004 Teilen Geschrieben 30. Dezember 2004 Hallo, ich möchte überprüfen, ob eine Zahl (double) eine Ganzzahl ist, d.h. ob die Nachkommastellen gleich oder != 0 sind. Wie löse ich das am schnellsten? Kann ich einfach folgendes machen (leider gerade kein Compiler verfügbar, um was auszutesten): - double my_nr in int i_nr umwandeln - von my_nr i_nr subtrahieren - wenn Ergebnis > 0, dann gibt es Nachkommastellen Wie würdet ihr das machen? Gruß, Technician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Warfox Geschrieben 30. Dezember 2004 Teilen Geschrieben 30. Dezember 2004 hmm ich würde das einfach so machen: double zupruefenderwert; int testwert; testwert = zupruefenderwert; if ((zupruefenderwert - testwert) != 0) { //deine Nachverarbeitung; } müsst eigentlich gehen :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Darth_Zeus Geschrieben 30. Dezember 2004 Teilen Geschrieben 30. Dezember 2004 Hmm, jaaa, also, Warfox..... Ich denke, Technician wollte genau das sagen. Ich mache es auch so, halte es für die einfachste Lösung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 30. Dezember 2004 Teilen Geschrieben 30. Dezember 2004 Ich denke nicht das das geht weil du bei einer Gleitkommazahl selbst wenn es eine "Ganzzahl" ist meistens nie genau 1 oder 2 oder so hast, sondern irgendwas wie 1,000000000001. Wenn soltest du es mit einem Epsilonvergleich probieren: if ((zupruefenderwert - testwert) > 0,00001) { //keine ganzzahl } [/PHP] Das sollte IMHO zuverlässiger sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 30. Dezember 2004 Autor Teilen Geschrieben 30. Dezember 2004 Hmm, jaaa, also, Warfox..... Ich denke, Technician wollte genau das sagen. exakt @Guybrush Werde das heute abend oder morgen ausprobieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kratzy974 Geschrieben 4. Januar 2005 Teilen Geschrieben 4. Januar 2005 Ich nutze gerne : if(a != (double)((int)a) Allerdings weiß ich nicht, um wie viel dies schneller ist, da ich mir zwar eine Subtraktion spare, aber dafür zwei Wandlungen mache.... Aber die wird normalerweise auch automatisch beri der Subtraktion zweier unterschiedlicher Variablentypen gemacht. kind regards, Kristian Kratzenstein Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 4. Januar 2005 Autor Teilen Geschrieben 4. Januar 2005 danke euch Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.