Up_CrossYourHeart Ответов: 1

Поведение setprecision в C++


double x = 3.14159;

	double y = 131.14159;

	double z = .00314159;

	double a = 13114.159;


	cout << setprecision(3) << "x =  " << x << endl;

	cout << "y =  " << y << endl;

	cout  << "z =  " << z << endl;

	cout  << "a =  " << a << endl;


Что я уже пробовал:

Я немного смущен поведением setprecision. Насколько я понимаю, setprecision пытается получить наиболее значимые цифры до и после десятичной точки (включительно) в соответствии со значением точности. Насколько я понимаю, для переменной z она выводит .00314, потому что 314-это 3 наиболее значимые цифры.Я не понимаю, почему для последней переменной она выводится как 1.31 e+04?

[no name]

Ух ты, 2 с лишним года здесь и понятия не имею, как задать вопрос. Просто вау.

Up_CrossYourHeart

Извините ThePhantomUpvoter. Я не заметил, что вопрос не был отправлен.

1 Ответов

Рейтинг:
11

Peter_in_2780

Короткий ответ заключается в том, что 1.31 e+04-это почти единственный способ выразить это число с точностью до 3 цифр. 13100 будет вводить в заблуждение-конечные нули могут быть значительными. Ведущие нули в .00314 явно не имеют значения.


CPallini

Мой 5.