2009-01-28 37 views
5

Trong Java, làm cách nào để làm tròn giá trị tùy ý? Cụ thể, tôi muốn làm tròn đến 0,0025 bước, đó là:Java: Làm tròn đến giá trị tùy ý

0,032611 -> 0,0325

0,034143 -> 0,0350

0,035233 -> 0,0350

0,037777 -> 0,0375

...

Bất kỳ ý tưởng hoặc libs nào?

Trả lời

19
y = Math.round(x/0.0025) * 0.0025 
+0

Tôi đã bỏ phiếu lên, nhưng tôi đoán công thức này không xử lý các trường hợp thứ 2, nơi rouding là trở lên và không xuống dưới. –

+1

Cảm ơn bạn đã đứng đầu. Tôi đã đổi nó thành Math.round(). –

+0

Hoạt động tuyệt vời. Cảm ơn. – kenoa

2

Bạn có thể làm điều này:

double step = 0.0025; 
double rounded = ((int)(unrounded/step + 0.5)) * step; 
+0

tôi tin rằng trong java nó nhận được đến cùng một vấn đề như nó được trong C + +: đúc để int sẽ cắt ngắn giá trị lớn gấp đôi vào những cái nhỏ hơn. Ví dụ 1e300 sẽ trở thành thứ khoảng 2e9. xem xét sử dụng ceil/sàn để tránh những mess tương tự như tôi đã làm ngày hôm nay khi trả lời một câu hỏi vòng tương tự :) –

+0

Ah vâng, tôi hiểu bây giờ, cảm ơn bạn rất nhiều! –

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