2012-05-04 9 views
5

Jak mogę zaokrąglić do określonej wielokrotności w Javie? w Excelu jest funkcja mround który pozwala na łatwą zaokrąglenia do określonej wielokrotności tak:Zaokrąglanie liczb do określonych wielokrotności

mRound(variable,multiple) 

tak mRound(x,3) wróci 9 jeśli x = 7.9 i 6 jeśli x = 7.2.

Wszystkie funkcje zaokrąglania, które dotychczas znalazłem, zawsze zaokrąglają do najbliższej liczby całkowitej lub określonej liczby miejsc dziesiętnych, ale chcę mieć możliwość zmiany wielokrotności dla każdej zmiennej. Czy ktoś wie, jaka funkcja byłaby najlepsza w tej sytuacji?

+0

Brak pojedynczej funkcji. 'mul * round (x/mul)'. –

Odpowiedz

14

Po prostu podziel przez liczbę, zaokrąglenie i pomnożenie przez liczbę.

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

Tak ... chociaż podejrzewam, że zarówno "współczynnik", jak i wartość zwracana powinny być "int". –

+0

@ X-Zero: Użycie 'factor' a' double' pozwala na użycie wartości takich jak '0.001' do zaokrąglenia do najbliższej tysięcznej. – Ryan

+0

Yay! To było proste! Jesteś fajny! –

Powiązane problemy