gpt4 book ai didi

c++ - 为什么存款的第一个输出以科学计数法显示?

转载 作者:行者123 更新时间:2023-11-28 01:50:37 25 4
gpt4 key购买 nike

void readAccountInfo()
{
ifstream fin;
fin.open("Accounts.dat");
string tempID;
string tempFirst;
string tempLast;
string tempDeposit;
string tempRate;
string tempYear;
int i = 0;
while (fin >> tempID >> tempFirst >> tempLast >> tempDeposit >> tempRate
>> tempYear)
{
accounts[i] =
{ tempID, tempFirst, tempLast, stof(tempDeposit), stof(tempRate), stoi(tempYear)};
i++;
}
}

void writeAccountInfo()
{
ofstream fout;
fout.open("test.dat");
int i = 0;
while (i < 30 && accounts[i].yearTerm != 0)
{
fout << accounts[i].ID << " " << accounts[i].firstName << " "
<< accounts[i].lastName << " ";
fout.precision(2);
fout << accounts[i].deposit << fixed;
fout.precision(1);
fout << " " << accounts[i].rate << fixed;
fout.precision(0);
fout << " " << accounts[i].yearTerm << endl << fixed;
i++;
}
}

输出的 dat 文件应该有存款有两位小数,但第一行总是以科学记数法结尾。示例 1000.00 应该是这样出来的,但结果却是 1 e+3。

最佳答案

如果您想要特定格式的输出,您必须在值之前添加说明符。例如:

 fout << fixed << accounts[i].deposit;

您在值后添加的内容只会影响下一个输出。

关于c++ - 为什么存款的第一个输出以科学计数法显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43162999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com