2011-01-08 9 views
2

Es ist mir peinlich, diese Frage zu stellen, aber nach 45 Minuten, keine Lösung zu finden, werde ich auf öffentliche Demütigung zurückgreifen.Double # zeigt 0 auf Android

Ich habe eine Nummer, die durch eine andere Nummer geteilt wird, und ich speichere diese Nummer in einer doppelten Variable. Die Zahlen werden zufällig generiert, aber das Debuggen der App zeigt, dass beide Zahlen tatsächlich erzeugt werden.

Sagen wir einfach, die Zahlen sind 476 & 733. ich dann die Zahlen nehmen und teilen sie den Prozentsatz zu bekommen 476/733 = 0,64

ich dann aus dem variablen Druck und es wird immer auf 0 gesetzt I habe versucht mit DecimalFormat und NumberFormat. Egal, was ich versuche, obwohl es immer besagt, dass die Variable 0 ist. Ich weiß, dass es etwas Einfaches gibt, dass ich vermisse, ich kann es einfach nicht finden = /.

Antwort

10

Ich stelle mir vor, dass Sie versuchen, etwas zu tun:

int x = 476; 
int y = 733; 
double result = x/y;  // result == 0 

Das hier Problem ist, dass Sie Integer-Division sind, die in die Antwort 0 gibt, und dann anschließend das Ergebnis einer doppelten Umwandlung. Sie müssen eine oder beide Zahlen in Gleitkommazahlen vor Division konvertieren. Hier ist eine Möglichkeit, das zu tun:

int x = 476; 
int y = 733; 
double result = ((double)x)/y; 
+0

Lol du hast es genagelt. Ich benutzte 2 Ints anstelle von Doppel. Ich wusste, dass es etwas Einfaches war, über das ich hinaus schaute. Vielen Dank! – Dave

+0

OMG. Vielen Dank !! Ich hatte so viel Ärger damit. Seltsame Sache ist, wenn ich die gleiche App mit 1.5 laufe, verursachte es kein Problem. Aber den gleichen Code in 2.2 ausgeführt. Sonderbar, hu !! –

0

Ich nehme an, die 2 Zahlen, die geteilt werden, sind "doppelte" Typen?

Haben Sie den Debug-Modus verwendet, um das Ergebnis der Division zu sehen?

Verwandte Themen