如何限制"e"前的小数位?

How do I limit the decimal places before "e"?

本文关键字:小数 何限制      更新时间:2023-10-16

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

阅读此:http://www.cplusplus.com/reference/cstdio/printf/,我不确定使用哪个说明符。这可以在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.

EDIT:正如@user657267指出的,precision也有一个操纵符,

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

有同样的效果

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

#include <stdio.h>
int main()
{
    printf("%.2en", 1.0);
}
输出:

1.00e+00

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