我如何限制“之前的小数位数?”;e";? < P> >我想在C++中以“1.00 e6”格式打印浮点变量x,在E.之前小数点后我只需要2个位置。

我如何限制“之前的小数位数?”;e";? < P> >我想在C++中以“1.00 e6”格式打印浮点变量x,在E.之前小数点后我只需要2个位置。,c++,printf,C++,Printf,仔细阅读以下内容,我不确定要使用哪个说明符。这能在C++中完成吗?< /p> < p> >阅读< Prtff()> > man 3 Primtf >如果您在任何UNIX类系统(OS X、Linux、BSD等)上,通常指定精度为 N>代码>,其中代码> N为所需精度: #include <stdio.h> int main() { printf("%.2e\n", 1.0); } 我已经给出了C中的代码,因为这是一个关于C++标准库的问题,它是C++标准的一部分。 d

仔细阅读以下内容,我不确定要使用哪个说明符。这能在C++中完成吗?< /p> < p> >阅读< <代码> Prtff()> <代码> > <代码> man 3 Primtf<代码> >如果您在任何UNIX类系统(OS X、Linux、BSD等)上,通常指定精度为<代码> N>代码>,其中代码> N<代码>为所需精度:

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

<>我已经给出了C中的代码,因为这是一个关于C++标准库的问题,它是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.

应该也有同样的效果。

为什么要使用
printf
?@AlexChamberlain:使用
printf()
本身没有什么问题。本地化比
更容易。现代编译器会对它进行类型检查。@AlexChamberlain:“惯用”本质上是主观的。不是每个人都同意是使用
还是
,这里也不是讨论这个问题的论坛。请坚持事实而不是观点。还有一个操纵器可以操纵
精度
std::cout
 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.
 double f = 1.00e6;
 std::cout << std::setprecision(2) << std::scientific << f << '\n';