Мені б хотілося - це метод перетворення подвійного рядка в рядок, який округляється методом напівперевершення, тобто, якщо десятковий закруглення дорівнює 5, він завжди округляється до наступного числа. Це стандартний метод округлення, який більшість людей очікує в більшості ситуацій.
Я також хотів би, щоб відображалися лише значні цифри - тобто не повинно бути ніяких кінцевих нулів.
Я знаю, що одним із способів цього є використання String.format
методу:
String.format("%.5g%n", 0.912385);
повертає:
0.91239
що чудово, однак він завжди відображає числа з 5 знаками після коми, навіть якщо вони не є значущими:
String.format("%.5g%n", 0.912300);
повертає:
0.91230
Іншим методом є використання DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
повертає:
0.91238
Однак, як бачите, для цього використовується напів рівне округлення. Тобто вона буде округлятись, якщо попередня цифра є парною. Що мені хотілося б це:
0.912385 -> 0.91239
0.912300 -> 0.9123
Який найкращий спосіб досягти цього на Java?