C++中cout和printf的区别
本文介绍了C++中cout和printf的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如一下代码所示,在输出数据时候cout
和printf
区别。
double ans = 0, max = 135.349, min = 3.88633;
ans = max * 2086458231 / min;
cout << ans << endl;
printf("%lf", ans);
输出
7.26652e+010
72665192664.000000
为什么会有这样的不同呢?
解决方案
c++的格式化输出问题,cout默认输出浮点数的格式不是%lf,如果要设置输出的格式,可以参考下面的链接
http://en.cppreference.com/w/...
#include <iostream>
int main() {
double ans = 0, max = 135.349, min = 3.88633;
ans = max * 2086458231 / min;
std::cout << ans << std::endl; // 7.2665e+10
std::cout.setf(std::ios::scientific);
std::cout << ans << std::endl; // 7.266497e+10
std::cout.unsetf(std::ios::scientific);
std::cout.setf(std::ios::fixed);
std::cout << ans << std::endl; // 72664965432.070602
printf("%lg\n", ans); // 7.2665e+10
printf("%lf\n", ans); // 72664965432.070602
return 0;
}
这篇关于C++中cout和printf的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文