Double zu Int wandeln

Hallo,

hab nen kleines Prob und komm nicht weiter

Hab ein Double 52.565464 und möchte daraus ein int machen.

Mit
Code:
int lat = (int)lat1;

kommt nur noch 52 raus was natürlich nicht das ist was ich möchte 🙂

Gibts noch eine möglichkeit ? Hätte gerne 52565464

Danke schon jetzt!
 
Zuletzt bearbeitet:
Du willst wohl runden? Da musst du dir ´ne entsprechene Funktion schreiben oder round() verwenden:
Java:
int zahl = Math.round(52.59438);

EDIT: Ich versteh zwar nicht, warum du aus 52.irgendwas 527589987 machen willst, aber warum multipliziest du dann nicht einfach mit 1Mio (oder wie viele Stellen auch immer du willst).
 
Zuletzt bearbeitet:
Wenns immer 6 Nachkommastellen sind, dann multiplizier mit 1mio. Wenns dynamisch ist, dann wandel die Zahl zu nem String und entferne den Punkt, danach in nen int wandeln.
 
[c]int ival = Integer.valueOf(Double.valueOf(52.565464).toString().replace(".", ""));[/c]... versuch's mal.
 
Wozu soll das denn gut sein?

Wenn die Zahl immer 6 Nachkommastellen hat kannst du sie einfach mit 1000000 multiplizieren und dann auf int casten, ansonsten ist das garnicht so einfach - schon weil double halt seinen Wert gerne mal geringfügig ändern was ziemliche Auswirkungen auf die Anzahl der Nachkommastellen haben kann.
 
Zuletzt bearbeitet:
Ich versteh zwar nicht, warum du aus 52.irgendwas 527589987 machen willst

In meiner Datenbank liegen die Koordinaten im double Format. Bei Website und iPhone waren die Daten so gewollt. Das Android SDK will die Koordinaten aber leider als int haben.

Ich versuch mal die String Methode
 
Warum auch immer Google sowas macht aber die Lösung steht doch dabei:

Code:
Constructs a GeoPoint with the given latitude and longitude, measured in microdegrees (degrees * 1E6).

Oder anders gesagt: Das mit "*1 Mio" war schon richtig. Und die String methode wird nur funktionieren, wenn die double Zahl genau 6 Nachkommastellen hat, sonst wirds gnadenlos daneben gehen
 
Zuletzt bearbeitet:
Klappt 1 A !

Code:
int lat = Integer.valueOf(Double.valueOf(pairs.get("lat").toString()).toString().replace(".",""));


vielen Dank !! Echt supi Forum hier 🙂
 
Nur weil unter jedem Beitrag ein "Danke" Button steht muss man nicht bei jedem draufdrücken, das führt die Funktion irgendwie ad absurdum 😉
Markier doch damit einfach nur den Beitrag der dir die Lösung gebracht hat.
 
@TO: Ehrlich gesagt, würd' ich nun doch lieber "*1Mio." nehmen... Die Gründe sind im Thread nachvollziehbar, nur kannte ich die vorher nicht. [c]int iVal = (int) (dVal * 1000000);[/c]
 

Zurück
Oben