我是C++的新手,我自己学习它,我正在使用Deitel的"C++ how to program - 第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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我删除"固定"流操纵器时,输出变得愚蠢,这意味着,只是ascii字母和数字.当我插入它时,输出没有任何问题.我的问题是,为什么会发生这种情况?对于具有"双"型输出的所有程序,"固定"是强制性的吗?请帮忙.
另一件事.什么是流操纵器?作为Java开发人员,我认为这些可能是某种常量变量,但事实并非如此!他们是方法吗?那为什么括号不在那里?请回答这个问题.
谢谢
输出不会"变得愚蠢":您只需让输出流选择浮点数的格式,它就会选择科学记数法.这给了你1e+03(意思是1*10^3)而不是1050.00.使用fixed告诉流你不想要科学记数法; 你也可以使用scientific强制科学的格式.由于精确的格式取决于您的应用要求,因此选择使用fixed或scientific最终取决于您.