«Округление» изменяет фактическое значение вашего двойника.
«Отображение до пяти разрядов» - это «проблема представления» - количество десятичных разрядов, отображаемое в выражении «печать», не имеет чтобы соответствовать фактической точности вашей двойной переменной.
Сказав это, вы можете рассмотреть возможность использования DecimalFormat :
- Это не меняет базовое значение
- Отображает значение до 5 десятичных знаков (если вы sh)
- Может автоматически округлять отображаемое значение для вас
- По умолчанию метод округления
RoundingMode.HALF_EVEN
- это именно то, что вы описали выше.