Những gì tôi muốn là một phương pháp để chuyển đổi một chuỗi thành một chuỗi làm tròn bằng phương pháp nửa lên - tức là nếu số thập phân được làm tròn là 5, thì nó luôn làm tròn đến số tiếp theo. Đây là phương pháp làm tròn tiêu chuẩn mà hầu hết mọi người mong đợi trong hầu hết các tình huống.
Tôi cũng chỉ muốn hiển thị các chữ số có nghĩa - tức là không nên có bất kỳ số 0 nào.
Tôi biết một phương pháp để làm điều này là sử dụng String.format
phương pháp:
String.format("%.5g%n", 0.912385);
trả về:
0.91239
thật tuyệt vời, tuy nhiên nó luôn hiển thị các số có 5 chữ số thập phân ngay cả khi chúng không đáng kể:
String.format("%.5g%n", 0.912300);
trả về:
0.91230
Một phương pháp khác là sử dụng DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
trả về:
0.91238
Tuy nhiên như bạn có thể thấy điều này sử dụng làm tròn nửa chẵn. Đó là nó sẽ làm tròn xuống nếu chữ số trước là chẵn. Điều tôi muốn là đây:
0.912385 -> 0.91239
0.912300 -> 0.9123
Cách tốt nhất để đạt được điều này trong Java là gì?