2017-02-24 7 views
-4

Ein Projekt, das ich brauche die Bewegung eines Spielers an einer Koordinate mit getX und getY, aber ich bin verwirrt, wie getX und getY von einem Doppel zu einem Int zu konvertieren, so dass ich sie spielen kann das Zeichenfeld.Konvertierung von Doppel zu int

+2

'(int) foo.getX();' Oder Sie können eine der verschiedenen Rundungsmethoden leicht finden. –

+0

Schauen Sie sich die "double to int" -Frage an, _not_ die "Double to Integer" -Frage. Ersterer beantwortet Ihre Frage. Letzterer beantwortet eine Frage zu _boxed primitiven_. –

Antwort

0

Nur Casting zu int wird das Double abschneiden. Sie müssen also angeben, welches Ergebnis Sie wirklich wollen, bevor Sie entscheiden, wie Sie den int erhalten. Zum Beispiel, wenn der doppelte Wert 2.999 ist, möchten Sie, dass Ihr int 2 oder 3 ist?

Wenn Sie den nächsten int (3 oben) möchten, verwenden Sie Math.round (d), das einen langen Wert zurückgibt.

0

Sie möchten Ihr Double als int darstellen, aber Sie müssen darauf achten, wie Sie casten, denn wenn Sie möchten, dass Ihre Bewegung genau ist, wollen Sie Werte von x.5 und darüber aufrunden und Werte unter x. 5 abgerundet werden.

Casting wird immer abgerundet, also ist ein guter Weg, um richtig zu runden, das Hinzufügen von 0,5 zu allen Ihren Doubles, bevor Sie zu einem int werfen.

Hier sind ein paar Beispiele

double = 1.1 
int (double) = 1 

double = 1.7 
int (double) = 1 \\ Note that we will likely want this to be 2 

unserer Methode verwenden, können sehen, wie diese 2 Doppelzimmer würde

double = 1.1 
double + .5 = 1.6 
int (double) = 1 

double 1.7 = 1.7 
double + .5 = 2.2 
int (double) = 2 

Beachten Sie, dass jetzt unsere verdoppelt, die über x.5 abgerundet werden bis gegossen werden richtig.

Verwandte Themen