Überprüfen, ob eine Zahl ein Doppel-oder ein int
Ich versuche zu verschönern, ein Programm durch die Darstellung 1.2 wenn es 1,2 und 1, wenn es 1 problem ist, ich habe gespeichert, die zahlen in die arraylist als verdoppelt. Wie kann ich überprüfen, ob eine Zahl ein Doppel-oder ein int?
Können Sie klären, ob Sie bedeuten, dass jede ganze Zahl, oder Sie wollen nur 32-bit signed
int
Werte?InformationsquelleAutor chuck finley | 2011-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, können Sie verwenden:
oder auch:
Wenn die Bedingung true ist, d.h. der Körper des
if
- Anweisung ausgeführt, dann wird der Wert ist ein integer. Ansonsten ist es nicht.Beachten Sie, dass diese Ansicht 1.00000000001 als noch ein Doppel - wenn diese Werte, die wurden berechnet (und kann damit nur "sehr nahe", um integer Werte) Sie wollen eine gewisse Toleranz. Auch beachten Sie, dass dieses scheitern für sehr große zahlen, wie Sie können nicht genau dargestellt werden, in
double
sowieso, möchten Sie vielleicht zu prüfen, mitBigDecimal
stattdessen, wenn Sie ' re Umgang mit einem sehr breiten Spektrum.EDIT: Es gibt bessere Wege, dies zu erreichen - mit
DecimalFormat
Sie sollten in der Lage sein, um es zu bekommen, nur Optional produzieren den Dezimalpunkt. Zum Beispiel:Ausgabe:
Es wird geprüft, ob der Wert, den du angegeben hast, ist genau eine ganze Zahl.
+1: floor-rundet die Zahl auf eine ganze Zahl. Nur ganze zahlen sind unverändert, also, wenn Ihr die gleichen, es müssen schon eine ganze Reihe. BTW: ich nehme an, du meinst eine beliebige ganze Zahl und nicht eine 32-bit signed
int
als solche.Tut es für mich...
Nicht besonders offensichtlich - ich fragte mich, ob Sie meinte Lange.MAX_VALUE.
InformationsquelleAutor Jon Skeet
Anderen einfach & intuitive Lösung, mit der modulo-operator (%)
InformationsquelleAutor neel
Ich bin C# Programmierer, also habe ich diese getestet .Net. Diese Arbeit sollte in Java auch (andere, als die Zeilen, verwenden Sie die Console-Klasse, um die Ausgabe anzuzeigen.
InformationsquelleAutor Surender Mohan