【问题标题】:why printf() is printing double variable as f char?为什么 printf() 将双变量打印为 f char?
【发布时间】:2015-12-12 13:28:53
【问题描述】:

我正在尝试使用 printf 函数打印双变量。 使用这个功能

 int x_angle,y_angle;
 double xc, ret, val;

 x_angle=mouse_shoot.x-10; 
 y_angle=19-mouse_shoot.y;
 xc=y_angle/x_angle;
 val = 180.0 / PI;
 ret = atan (xc) * val;
 printf("The arc tangent of %f is %f degrees", xc, ret);

x_angle 和 y_angle 打印得很好,但是当我尝试打印 xc 和 ret 时,我得到了这个打印

"f 的反正切为 f 度" 知道为什么吗?

----更新-----

似乎 Dos 没有在屏幕上打印双倍,所以我将结果转换为 int 并且打印得很好!

【问题讨论】:

  • 请贴出我们可以编译的代码。 main 在哪里?
  • main 无关紧要,因为我在 dos 中进行实时游戏,我从代码中的某处运行此函数并得到此输出
  • 你确定你没有忘记f之前的%吗?并确保这里的x_angle xc=y_angle/x_angle 不为零。如果你仍然得到相同的输出,请发minimal reproducible example
  • @JohnColeman 这仅适用于scanf,在printf 中不需要。
  • 你应该指定你的系统和编译器

标签: c printf


【解决方案1】:

也许xc = y_angle / x_angle 会出现问题,因为两个角度都是整数?

尝试将它们转换为 double 可能:

((double)y_angle) / ((double)x_angle)

【讨论】:

  • 这不会导致printf 打印 OP 正在获取的内容。这应该是 IMO 的评论。
猜你喜欢
  • 1970-01-01
  • 2010-09-17
  • 2019-11-07
  • 2019-11-30
  • 2014-01-17
  • 2019-03-28
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多