2012-05-04 15 views
5

Wie kann ich auf ein bestimmtes Vielfaches in Java runden? In Excel gibt es die mround Funktion, die wie so für eine einfache Rundung auf ein bestimmtes Vielfaches erlaubt:Runden von Zahlen auf bestimmte Vielfache

mRound(variable,multiple) 

so mRound(x,3)9 wenn x = 7.9 und 6 wenn x = 7.2 zurückkehren würde.

Alle Rundungsfunktionen, die ich bisher gefunden habe, werden immer auf die nächste ganze Zahl oder auf eine bestimmte Anzahl von Dezimalstellen gerundet, aber ich möchte das Vielfache für jede Variable ändern können. Weiß jemand, welche Funktion für diese Situation am besten ist?

+0

Keine einzige Funktion dafür. 'mul * rund (x/mul)'. –

Antwort

14

Teilen Sie einfach durch die Zahl, rund, und multiplizieren Sie mit der Zahl.

double mRound(double value, double factor) { 
    return Math.round(value/factor) * factor; 
} 
+0

Ja ... obwohl ich vermute, dass sowohl "factor" als auch der Rückgabewert "int" sein sollten. –

+0

@ X-Zero: Wenn Sie 'factor' ein' double' machen, können Sie Werte wie '0.001' verwenden, um auf das nächste Tausendstel zu runden. – Ryan

+0

Yay! Das war einfach! Du bist cool! –

Verwandte Themen