gpt4 book ai didi

c++ - 格式,iomanip,C++

转载 作者:可可西里 更新时间:2023-11-01 18:27:43 26 4
gpt4 key购买 nike

我正在努力学习使用命名空间声明,而不是仅仅说“使用命名空间标准”。我正在尝试将我的数据格式化为小数点后两位,并将格式设置为固定而不科学。这是我的主文件:

#include <iostream>
#include <iomanip>

#include "SavingsAccount.h"
using std::cout;
using std::setprecision;
using std::ios_base;

int main()
{
SavingsAccount *saver1 = new SavingsAccount(2000.00);
SavingsAccount *saver2 = new SavingsAccount(3000.00);

SavingsAccount::modifyInterestRate(.03);

saver1->calculateMonthlyInterest();
saver2->calculateMonthlyInterest();

cout << ios_base::fixed << "saver1\n" << "monthlyInterestRate: " << saver1->getMonthlyInterest()
<< '\n' << "savingsBalance: " << saver1->getSavingsBalance() << '\n';
cout << "saver2\n" << "monthlyInterestRate: " << saver2->getMonthlyInterest()
<< '\n' << "savingsBalance: " << saver2->getSavingsBalance() << '\n';
}

在 Visual Studio 2008 上,当我运行程序时,在我想要的数据之前得到了“8192”的输出。这是有原因的吗?

此外,我认为我没有正确设置固定部分或 2 位小数,因为一旦我添加了 setprecision(2),我似乎得到了科学记数法。谢谢。

最佳答案

你想要std::fixed (另一个只是将它的值插入流中,这就是为什么你看到 8192),我没有看到对 std::setprecision 的调用在您的代码中的任何位置。
这将解决它:

#include <iostream>
#include <iomanip>

using std::cout;
using std::setprecision;
using std::fixed;

int main()
{
cout << fixed << setprecision(2)
<< "saver1\n"
<< "monthlyInterestRate: " << 5.5 << '\n'
<< "savingsBalance: " << 10928.8383 << '\n';
cout << "saver2\n"
<< "monthlyInterestRate: " << 4.7 << '\n'
<< "savingsBalance: " << 22.44232 << '\n';
}

关于c++ - 格式,iomanip,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2727139/

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