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?
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?
y = Math.round(x/0.0025) * 0.0025
Bạn có thể làm điều này:
double step = 0.0025;
double rounded = ((int)(unrounded/step + 0.5)) * step;
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ự :) –
Ah vâng, tôi hiểu bây giờ, cảm ơn bạn rất nhiều! –
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. –
Cảm ơn bạn đã đứng đầu. Tôi đã đổi nó thành Math.round(). –
Hoạt động tuyệt vời. Cảm ơn. – kenoa