2016-09-17 5 views
0

Ich teile 2 Zahlen und möchte bei Bedarf eine Dezimalzahl zurückgeben. Aber es gibt die ganze Zahl auf allem zurück.Float gibt beim Dezimieren keine Dezimalzahl zurück

float temp = (twoMileInSeconds - 774)/6; 
timeIndex = (int)Math.floor(temp); 

debug1.setText("Before rounding: " + temp); 
debug2.setText("After rounding: " + timeindex); 

Dank

Antwort

1

Welche Datentyp 'twomileinsecods'? Wenn es Int ist, dann ist das das Problem ... oder vielleicht, wenn Sie 6.0 anstelle von 6 setzen.

Um sicherzustellen, dass die Division rechts neben dem Gleichheitszeichen in einem Float führt, stellen Sie sicher, alle Datentypen auf der rechten Seite sind bereits schwimmt. Das Problem ist, dass es nach der Teilung geworfen wird.

+0

twoMileInSeconds ist ein Int. Sollte es schweben? – th3ramr0d

+0

yeah hat twoMileInSeconds in float geändert und zeigt jetzt die korrekte Dezimalzahl an. Vielen Dank! – th3ramr0d

+0

Kann ich einen Ladestock bekommen Daumen hoch? –

1

Wenn Sie Cast in Float eingeben, wird es auch perfekt funktionieren, da Sie eine Variable twowileInSeconds genommen haben und es kann auch ganzzahlig sein, so dass Sie auch für diesen Ansatz gehen können.

float temp = (float) (twoMileInSeconds - 774)/6; 
     int timeIndex = (int)Math.floor(temp);