# funktion zum überprüfen einer zahl



## Niki_Tesla (7. Nov 2004)

hi!

wollte mal fragen obs eine möglichkeit gibt überprüfen zu lassen ob eine zahl gerade eine ganze zahl ist oder eine gleitkommazahl!?

mfg,
niki


----------



## bygones (7. Nov 2004)

gerade über den modulo operator %2 == 0

mhm - ist nicht eine ganze Zahl auch automatisch eine Gleitkommazahl (da SubMenge des anderen) - also 2 = 2.0 ? oder irre ich mich....

momentan würde mir nur einfallen, dass die du Zahl versuchst (wenn sie als String kommt, ansonsten weißt du es ja schon) als int zu parsen (Integer.parseInt()) - falls das schiefgeht versuchst du es als float bzw. double....


----------



## Kerberus (7. Nov 2004)

Du könntest folgendermassen überprüfen, ob es eine Gleitkommazahl ist:


```
public boolean isFloat(double value) {
 int dec = (int)value;
 if(value - dec != 0) {
  return true;
 } else {
  return false;
 }
}
```


----------



## nero (7. Nov 2004)

```
double var=9999999999992.623211231;

if(var%1==0)
  System.out.println("Ganze Zahl");
else
  System.out.println("Gleitkommazahl");
```

so sollte es gehen


----------



## 0xdeadbeef (7. Nov 2004)

Nur mal so am Rande:

Bei Doubles hat die Mantisse einen Wert von 52 Bits. Bei Longs mit mehr Bits kann also ein Double nicht mehr sicher in ein Long konvertieren, ohne daß dabei Ungenauigkeiten auftreten. Bei Floats hat die Mantisse nur 23 Bits: entsprechend treten Ungenauigkeiten bereits bei großen Int-Werte auf.


----------



## Student (8. Nov 2004)

selbstverständlich kann auch eine gleitkommazahl gerade sein ^^
2.2 ist gerade ..
2.5 ist ungerade ..

demnach ist die fragestellung etwas unglücklichgewählt .. aber wir wissen ja alles, um was es geht ..


----------

