在浮动时关闭科学记数法

use*_*231 10 c++

我正在尝试以标准符号显示数字

例如:

float f = 1230000.76
Run Code Online (Sandbox Code Playgroud)

原来是,

1.23e+006
Run Code Online (Sandbox Code Playgroud)

Avi*_*mar 9

iomanip中有两件必须包含的内容......首先是固定的,第二件是setprecision

你需要写:

cout <<固定;
cout << setprecision(2)<< f;

修复禁用科学记数法,即1.23e + 006 ....固定是一个粘性操纵器,所以你需要禁用它,如果你想恢复科学记数法...


MD *_*med 5

用 -

cout.setf(ios::fixed, ios::floatfield);
cout.setf(ios::showpoint);
Run Code Online (Sandbox Code Playgroud)

在打印出浮点数之前。

可以在此处找到更多信息。

您还可以使用以下语句设置输出精度 -

cout.precision(2);
Run Code Online (Sandbox Code Playgroud)

或者干脆用 -

printf("%.2f", myfloat);
Run Code Online (Sandbox Code Playgroud)

  • 对于大多数 C/C++ 环境,“float”具有 6 到 7 个有效数字的精度。超出此范围显示它不会提高准确性。如果您想要更精确地处理值,请将数据类型更改为“double”,它有大约 15 位有效数字,或者“long double”大约有 19 位。 (2认同)