Значимые цифры — 2.
Почему выход
cout << setprecision(2) << 0.999 << endl;`
является 1
вместо 1.0
?
Форматирование по умолчанию не печатает конечные нули; вам нужно установить форматирование с плавающей запятой в fixed
, смотрите также эта ссылка. Так что вам нужно
cout << setprecision(2) << fixed << 0.999 << endl;
Также обратите внимание, что setprecision относится к десятичным цифрам, поэтому для 1.0 вам понадобится setprecision(1)
Других решений пока нет …