【问题标题】:The output shown in the screen is not matching with the original result屏幕上显示的输出与原始结果不匹配
【发布时间】:2023-03-04 05:50:01
【问题描述】:

我是 C 初学者

我在下面的代码中遇到了一些问题:-

代码

#include <stdio.h>

int main()
{
    int a = 7, b;
    b = a * 0.621;
    printf("%f", (float)b);
    return 0;
}

输出应该是4.347,但这里的输出是4.000000

我应该怎么做才能得到4.347 而不是4.000000

【问题讨论】:

  • 不要添加不相关的标签和相关代码的图像。
  • 您将乘法的结果分配给b,它是int 类型,因此它会被截断。稍后将b 转换为float 无法恢复小数部分。必须是float b;
  • 对错误感到抱歉。实际上,这是我第一次在 Stack Overflow 上,所以我不知道发布问题的规则。我尽力编辑我的问题并使其正确。我再次为我的错误向大家道歉

标签: c integer output printf


【解决方案1】:

需要将int类型改为double类型,可以包含十进制数。

int main()
{
    double a=7 , b;
    b = a*0.621;
    printf("%f",(b));
    return 0;
}

输出:4.34700

【讨论】:

  • 感谢您花时间解决我的疑问。
  • 如果对您有帮助,请确认我对社区的回答。
【解决方案2】:

'b' 是 int 类型,所以它只存储 4,并且由于您在打印中使用 (float),它会将值 4 显示为 4.000000。将 b 的数据类型更改为 float 或 double。

int a=7,b;

应该改为

int a=7;float b;

【讨论】:

  • 感谢您花时间解决我的疑问。
猜你喜欢
  • 1970-01-01
  • 2020-04-19
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 2017-06-29
相关资源
最近更新 更多