0

我想在 C++ 中以“1.00e6”格式打印一个浮点变量 x,其中我只想要 e 之前的小数点后 2 位。

阅读此内容:http ://www.cplusplus.com/reference/cstdio/printf/ ,我不确定要使用哪个说明符。这可以在 C++ 中完成吗?

4

2 回答 2

7

你可以在 C++ 中做同样的事情:

 double f = 1.00e6;
 std::cout.precision(2);
 std::cout << std::scientific;
 std::cout<<f <<std::endl;
 It will output: 1.00e+06 in this case.

编辑:正如@user657267 所指出的,还有一个操纵器precision

 double f = 1.00e6;
 std::cout << std::setprecision(2) << std::scientific << f << '\n';

应该有同样的效果。

于 2013-04-14T19:23:33.413 回答
2

如果您在任何类 Unix 系统(OS X、Linux、BSD 等)上,请阅读printf()with的文档。通常,您使用 指定精度,其中是所需的精度:man 3 printf.NN

#include <stdio.h>
int main()
{
    printf("%.2e\n", 1.0);
}

输出:

1.00e+00

我已经给出了 C 代码,因为这确实是关于 C 标准库的问题,它是 C++ 标准的一部分。

于 2013-04-14T19:13:11.423 回答