Я использую следующий код для округления до 2dp:
sprintf(temp,"%.2f",coef[i]); //coef[i] returns a double
Он успешно округляет 6,666 до 6,67, но не работает должным образом при округлении
5,555. Он возвращает 5,55, тогда как должен (по крайней мере, на мой взгляд) возвращать 5,56.
Как получить округление, когда следующая цифра 5? то есть вернуть 5,56.
edit: теперь я понимаю, что это происходит, потому что когда я ввожу 5.555 с cin, он получает
сохранен как 5.554999997.
Я собираюсь попробовать округлить в два этапа - сначала до 3dp, а затем до 2dp. любой другой
(более элегантные) идеи?