Java Double überprüfen ob Kommazahl oder nicht

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

wie MrPaeddah es erzählt hat ist es richtig. Hier eine erklärung dazu

du definierst die variable d als fließkommazahl. Um festzustellen, ob etwas hinter dem komma ist mußt du den integeranteil der zahl ermitteln und ihn von der variable d abziehen. Ist das ergebis gleich null, ist nichts hinter dem komma. Bei ungleich null, ist eben ein rest.

in seinem beispiel ist d eine fließkommazahl und (int)d wandelt sie in eine integerzahl um. Da int aber keine nachkommastellen hat, werden selbige abgeschnitten.

z.b d = 1,234 ind(d) = 1 >>> d - int(d) = 0,234 >>> d ist nicht ganz

double d = MachIrgendwasTolles();

if(d < 0) { while(d < 0) d++; if(d == 0.0) return HATKEINENACHKOMMASTELLEN; else return HATNACHKOMMASTELLEN; } else if(d > 0) { while(d > 0) d--; if(d == 0.0) return HATKEINENACHKOMMASTELLEN; else return HATNACHKOMMASTELLEN; } else return HATKEINENACHKOMMASTELLEN;

Habe lange nichts mehr mit Java gemacht, das oben ist eher C/C++. Die Idee dahinter sollte trotzdem klar werden. Habs nicht getestet. Vieleicht gibt es auch bessere und performantere Möglichkeiten. Ist mir nur so als erstes eingefallen. Vieleicht findest du im Internet oder gar in der Java-Standardbibliothek eine entsprechende Funktion. Evtl. geht's auch ganz simpel mit casting. Mfg

Das ganze ist z.B. so lösbar:

if( (d - (int)d) == 0)
  System.out.println("kein Komma");
else
  System.out.println("Komma");

Hey

Ich bin mir grad nich hundertprozentig sicher, aber es müsste funktionieren, wenn du deinen Double nach int castest und danach vergleichst, ob der Double größer ist, oder gleich groß... eventuell müsstest du den nach int gecasteten Double nochmal nach double casten!

Das klingt jetzt etwas verwirrend^^

LG tetse