Почему выход cout << setprecision(2) << 0.999 равен 1 вместо 1.0?

Значимые цифры - 2.

Почему выход

cout << setprecision(2) << 0.999 << endl;` 

является 1 вместо 1.0?

1 ответ

Решение

Форматирование по умолчанию не печатает конечные нули; вам нужно установить форматирование с плавающей запятой в fixedсм. также эту ссылку. Так что вам нужно

cout << setprecision(2) << fixed << 0.999 << endl;

Также обратите внимание, что setprecision относится к десятичным цифрам, поэтому для 1.0 вам понадобится setprecision(1)

Другие вопросы по тегам