c++ - 打印相同变量时为 cout 和 printf 获取不同的输出

标签 c++ printf cout trigonometry

使用 Devc++ 对于 printf 得到 0.00000 并让 cout 得到一些奇怪的输出。

#include<iostream>
#include<cmath>
#include<stdio.h>
using namespace std;
main()
{
   float i,j=M_PI;
   i=sin(j);
   printf("%f \n",i);
   cout<<i;
}

最佳答案

在我看来,M_PI 并不完全是 pi(我们知道它不可能),而且 sin 的结果也不完全是零。

printf%f 表示输出数字四舍五入为“正常”小数,而 cout 使用自适应格式(大约 % g 我记得在 printf 中),它使用科学记数法来表示小数。

另请注意,%f 表示 double,但可变参数在传入时有助于将您的 float 提升为 double。

关于c++ - 打印相同变量时为 cout 和 printf 获取不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034947/

相关文章:

c++ - 重载输入/输出运算符

c++ - 如何使用 decltype 从空模板容器中提取类型?

字符串格式截断值

c - 不打印 eratosthene 筛所需的输出

c++ - STD::COUT 影响程序的功能

c++ - 应用于旧 C 风格代码的 setprecision

c++ - 数据 GridView 创建

c++ - Qt中如何让默认的UI元素更漂亮?

c++ - 具有包扩展的可变参数函数模板不在最后一个参数中

java - 当相同的 printf 方法在控制台上正确打印出来时,如何解决 Eclipse 调试器窗口上的 java printf 问题 ("source not found.")?