double — В c ++ он начинается с десятичной или всей # setprecision

В приведенном ниже примере вывод равен 3,1, поэтому он начинается с первого значения.

double y = 3.14784;
cout << setprecision(2) << y;

в следующем примере точность вывода начинается с десятичного значения

int x = 2;
double y = 3.0;
cout << setprecision(2) << x/y;

и все же в следующей строке кода — те же самые x и y, как объявлено выше, мы получаем точность, начиная с совсем не показанной. (единственный способ напечатать ниже 6.00 — использовать фиксированный).

cout << setprecision(2) << x * y; // shows 6.

если мы не используем фиксированный — просто setprecision (n), где начинается этот n? потому что это заявляет, что его установленная точность используется для десятичной точности. и все же в первом примере он рассматривает все двойное значение, а не только десятичное.

пожалуйста, порекомендуйте.
Благодарю.

0

Решение

n начинается с первых значащих цифр (не ноль)

0

Другие решения

От http://www.cplusplus.com/reference/ios/ios_base/precision/

Для локали по умолчанию:

  • Используя стандартную нотацию с плавающей точкой, в поле точности указывается максимальное количество значащих цифр, которые будут отображаться при общем подсчете как до, так и после десятичной запятой. Обратите внимание, что это не минимум, и поэтому он не дополняет отображаемое число конечными нулями, если число может отображаться с меньшим количеством цифр, чем точность.
  • И в фиксированной, и в научной нотациях поле точности указывает, сколько именно цифр нужно отображать после десятичной точки, даже если это включает в себя конечные десятичные нули. В этом случае цифры перед десятичной запятой не имеют значения для точности.
1

По вопросам рекламы [email protected]