Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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:

Geschrieben

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.

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...