2016-04-17 14 views
0

Ich habe 2 Werte, die ich zusammen hinzufügen möchte. Wenn Sie dies versuchen, wird dem Wert nicht die Dezimalstelle hinzugefügt.Doppelte Werte addieren sich nicht

int pearInt = (int) Double.parseDouble(pear.getText()); 
int appleInt = (int) Double.parseDouble(apple.getText()); 

double result = pearInt + appleInt; 

total.setText("" + result); 

pear.getText() & apple.getText() abruft von einem Textfeld mit den Werten 35.5 und 16.5. Als ich sie zusammen versuchen, hinzufügen, ich will es 52.0 angezeigt werden, aber es ist die Anzeige 51.0

+2

Wenn Sie Ihren Code in Ihrem Debugger Schritt für Schritt durchlaufen, könnten Sie sehen, dass Sie, wenn Sie auf "int" -Werte umwandeln, die Brüche löschen. Wenn du das nicht tun willst, nimm den Cast und benutze 'double'. –

+2

Was denkst du, ist der Unterschied zwischen einem 'int' und einem' double'? –

Antwort

1

Das Problem ist, Ihre Summe von 2 ints ist:

int pearInt = (int) Double.parseDouble(pear.getText()); 
int appleInt = (int) Double.parseDouble(apple.getText()); 

Dies wird erzeugt 2 Ints, weil Sie die Doppel werfen . Wechseln Sie also einfach zu:

double pearInt = Double.parseDouble(pear.getText()); 
double appleInt = Double.parseDouble(apple.getText()); 

Und Sie sind gut zu gehen.

+0

fühle mich wie ein Idiot danke Mann :) –

1

Weil Sie Ihre Doubles zu int. Wenn Sie einen Fließkommawert in eine Ganzzahl umwandeln, wird alles hinter dem Punkt abgelegt. So berechnen Sie tatsächlich 35 +16