我是 C++ 的新手,正在自学,我正在使用 Deitel 的《C++ 如何编程 - 第 7 版》一书。现在,请看下面的代码
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
double principle = 1000;
double amount;
double rate = 0.05;
cout << "Year" << setw(21) << "Amount on deposit" << endl;
cout << fixed << setprecision(2);
for(int years=1; years<=10; years++)
{
amount = principle * pow(1.0+rate,1.0);
cout << setw(4) << years << setw(21) << amount << endl;
}
}
当我移除“固定”流操纵器时,输出变得愚蠢,这意味着,只有 ascii 字母和数字。当我插入它时,输出没有任何问题。我的问题是,为什么会这样?所有具有“双重”类型输出的程序都必须“固定”吗?请帮忙。
还有一件事。什么是流操纵器?作为一名 Java 开发人员,我认为这些可能是某种常量变量,但事实并非如此!它们是方法?那为什么没有括号呢?请也回答这个问题。
谢谢
最佳答案
输出不会“变得愚蠢”:您只需让输出流选择 float 的格式,它会选择科学记数法。这将为您提供 1e+03
(这意味着 1*10^3
)而不是 1050.00
。 fixed
的使用告诉流你不需要科学记数法;你也可以使用 scientific
给力的科学格式。由于精确的格式取决于您的应用程序要求,因此选择使用 fixed
还是 scientific
最终取决于您。
关于c++ - 删除 "fixed"流操纵器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885489/