如何从科学记数法中恢复过来

How to swich back from scientific notation

本文关键字:恢复      更新时间:2023-10-16

我需要用科学记数法显示一个元素。cout 位于几个循环内,在设置科学记数法后,它会影响程序中的整个 cout。如何切换回常规表示法。

这是 cout 线:

cout << "Firing '" <<  fir << "' Time: " << time <<  " secnCorresponding altitude: " << scientific << alt << endl;

只有变量 alt 应该以科学记数法显示。

我添加了 cout.precision(2); 和 cout <<固定的;在上面的行之后,但它也会影响程序中的其他 cout。

我感谢您的帮助。

尝试这样的事情:

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

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

。或。。。

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

另请参阅:

C++ std::流双精度值 没有科学的,也没有固定的小数计数

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

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

好吧,在设置精度之前,您可以将其与 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;
}