#include <iostream>
#include <iomanip>
#include <stdio.h>
using namespace std ;
int main(){
string name ;
float salary ;
float made ;
cin >> name ;
cin >> salary ;
cin >> made ;
float result = salary + 0.15*made ;
cout<<"TOTAL = R$ "<<setprecision(2)<<result <<endl ;
printf("TOTAL = R$ %.2f\n", result) ;
}
输入: jack 500.00 1230.00
输出:
总计 = 6.8e+002 雷亚尔
总计 = 684.50 雷亚尔
正确的输出应该是 684.50。为什么它会产生不同的输出?我想知道 cout 与 printf 相比如何工作
最佳答案
500 + 1230 * 0.15
给你 684.5
,因此 cout
仍然是正确的,因为你只允许两位数的精度、6
和 8
。
如果希望cout
版本与printf
格式相同,需要使用fixed
:
cout << "TOTAL = R$ " << fixed << setprecision(2) << result << endl ;
更改您的代码以使用那行而不是您当前的行给出:
TOTAL = R$ 684.50
TOTAL = R$ 684.50
关于c++ - C++ 中的 cout 与 printf 给出不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20091915/