2012-05-04 68 views
5

Làm thế nào tôi có thể làm tròn tới một bội số cụ thể trong Java? Trong excel có chức năng mround cho phép để dễ dàng làm tròn đến bội số quy định như sau:Làm tròn số cho các bội số cụ thể

mRound(variable,multiple) 

nên mRound(x,3) sẽ trở 9 nếu x = 7.96 nếu x = 7.2.

Tất cả các chức năng làm tròn tôi đã tìm thấy cho đến nay luôn tròn với số nguyên gần nhất hoặc đến số vị trí thập phân được chỉ định nhưng tôi muốn có thể thay đổi bội số cho mỗi biến. Có ai biết chức năng nào là tốt nhất cho tình huống này không?

+0

Không có chức năng duy nhất cho điều đó. 'mul * tròn (x/mul)'. –

Trả lời

14

Chỉ cần chia cho số, làm tròn và nhân với số đó.

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

Có ... mặc dù tôi nghi ngờ cả hai 'yếu tố' và giá trị trả về phải là' int '. –

+0

@ X-Zero: Đặt 'factor' thành' double' làm cho nó có thể sử dụng các giá trị như '0,001' để làm tròn đến phần nghìn gần nhất. – Ryan

+0

Yay! Điều đó thật đơn giản! Bạn mát mẻ! –

Các vấn đề liên quan