2016-10-03 15 views
5

Wie kann ich eine Zahl ohne if-Anweisungen auf die nächsten zehn runden? Zum Beispiel, 98 bis 100.Wie komme ich auf die nächsten zehn?

int num = 87; 
double t; 
double d = 1.0 * num; // d = 87.0 
t = d/100; 
System.out.println(t); 

Antwort

6

können Sie Math.round(num/10.0) * 10 verwenden.

+0

, wenn Sie durch 10d oder 10,0 dividieren kann num jede (primitive) Zahl sein. –

+0

Wahr, bearbeitet. @Peter – Zarwan

7
answer = ((num+5)/10)*10; // if num is int 

wo num ist int und mehr Idee, diese quesiton lesen. How to round a number to n decimal places in Java.
Edit:
wenn num ist double Schublade gesteckt zu Ausdruck hinzufügen (long)((num+5)/10) wie @PeterLawrey vorgeschlagen

+0

Sind Sie sicher? Wenn 'num' 14.0 ist, dann wird dies zu 20 ausgewertet. – Bathsheba

+0

Ich könnte einen Senior-Moment haben, aber das letzte Mal, als ich überprüfte, (14,0 + 5)/10 ist 1,9, die 2,0 beim Runden wird. Denken Sie daran, dass 'Math.round' deutsche Rundungen implementiert. – Bathsheba

+0

Die Besetzung eines int zu einem int ist redundant, schlimmer, wenn es schon lang ist. –

Verwandte Themen