我正在尝试在c ++中使用setprecision。这就是我在做什么 -
我有一个输出文件,我正在编写结果 -
我第一次调用函数会正确打印interest_rate。
说,我用interest_rate=0.035
调用函数,所以我得到以下输出 -
Annual Interest Rate: 0.035
但是下次如果我使用相同interest_rate i.e. 0.035
的函数调用,我会得到以下输出 -
Annual Interest Rate: 0.04
我想在两种情况下输出相同的输出,为什么会发生这种情况?
编辑: - 这是代码 -
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
这是输入文件: - 的 input.txt中
3
1000.00
0.035
120.00
5000.00
0.04
165.00
200000.00
0.055
2250.00
这是我得到的输出文件:
Annual Interest Rate: 0.035
1 1000.00
2 1000.00
3 1000.00
4 1000.00
Annual Interest Rate: 0.04
1 5000.00
2 5000.00
3 5000.00
4 5000.00
Annual Interest Rate: 0.06
1 200000.00
2 200000.00
3 200000.00
4 200000.00
注意输入文件中的0.055如何在输出文件中打印为0.06
答案 0 :(得分:4)
某些流操作符/标志仅应用一次(例如:setw
),其他流操作符/标志在更改之前保持有效(例如:fixed
和setprecision
)。
我假设,在函数的第一次调用中,您使用的是默认格式(不是fixed
而不是scientific
)和流的默认精度(6)。
在函数的第二次调用中(我假设您不在另一个函数中同时更改它),您的格式为fixed
,精度为2。