如一下代码所示,在输出数据时候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
为什么会有这样的不同呢?
如一下代码所示,在输出数据时候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
为什么会有这样的不同呢?
cout是C++的语法,printf是C语言了,不过C保留了,在cstdio里面
结果不同时因为cout对超长的浮点数默认采用了保留N位+科学计算法的形式,不过cout也是可以用参数格式化输出的,比如
cout << setiosflags(ios::fixed) << f
就不用科学计数法了,更多的参数你可以查阅手册
printf也可以格式化,非常方便
3 回答832 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答2.2k 阅读
1 回答813 阅读✓ 已解决
2 回答1.1k 阅读
1 回答1.2k 阅读
1.2k 阅读
c++的格式化输出问题,cout默认输出浮点数的格式不是%lf,如果要设置输出的格式,可以参考下面的链接
http://en.cppreference.com/w/...