Как отказаться от научной нотации

Мне нужно показать один элемент в научной записи. Cout расположен в нескольких циклах и после установки научной нотации, он влияет на весь Cout в программе.
Как я могу вернуться к обычной записи.

Это строчка:

cout << "Firing '" <<  fir << "' Time: " << time <<  " sec\nCorresponding altitude: " << scientific << alt << endl;

В научной нотации должна быть указана только переменная alt.

Я добавил cout.precision (2); и кут << фиксированный; после строки выше, но это также влияет на другой cout в программе.

Я ценю вашу помощь.

1

Решение

Попробуйте что-то вроде этого:

http://www.cplusplus.com/reference/ios/scientific/

cout << "Firing '" <<  fir << "' Time: " << time <<  " sec\nCorresponding altitude: ";
cout << std::scientific << alt << endl;
std::cout << std::defaultfloat; // C++ 11

… или же …

std::cout.unsetf ( std::ios::floatfield );   // C++ 98

Смотрите также:

c ++ std :: stream двойные значения без научных данных и без фиксированного количества десятичных знаков

http://www.cs.duke.edu/courses/cps149s/fall99/resources/n2.html

http://www.uow.edu.au/~lukes/TEXTBOOK/notes-cpp/io/omanipulators.html

0

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

Ну, прежде чем установить точность, вы можете сохранить его с cout.precision()в переменной. После того, как вы сделали, используя точность, установленную на 2, вернитесь туда, где она использовала переменную. то есть cout.precision(precision) Предполагая, что «точность» является вашей переменной.

пример:

выход:

1.2

1,234

#include <iostream>

using namespace std;

int precision;
float number = 1.234;

int  main(void)
{
precision = cout.precision();
cout.precision(2);
cout << number << endl;
cout.precision(precision);
cout << number << endl;
}
0

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