如何限制“e”之前的小数位?

时间:2013-04-14 19:05:52

标签: c++ printf

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

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

2 个答案:

答案 0 :(得分: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';

应该有同样的效果。

答案 1 :(得分:2)

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

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

输出:

1.00e+00

我已经在C中给出了代码,因为这实际上是一个关于C标准库的问题,它是C ++标准的一部分,仅供参考。