【问题标题】:How to divide float by integer when both are variables?当两者都是变量时,如何将浮点数除以整数?
【发布时间】:2014-01-23 11:53:13
【问题描述】:

我正在用 C 语言编写一个程序。我有两个变量,一个是整数,另一个是浮点数。我想将浮点数除以整数并希望得到浮点数的结果。我正在执行以下操作:

int a;
float b=0,c=0;
scanf("%d",&a);

然后我对b 进行一些计算,使其具有非零值。

c = b/(float)a;
printf("c = %d\n", c);

问题是我将c 打印为四舍五入的数字(整数)而不是浮点值。

如何将c 作为浮点值?

【问题讨论】:

  • 您的代码非常适合我。不应该有四舍五入。也许您稍后不小心将 c 转换为 int?
  • 变量中有哪些值?
  • 您的代码可以使用c = b / a;:至少其中一个除数需要是浮点数:b 已经是。巧合的是,答案必须计算为没有小数部分的float
  • 请看我的代码的编辑版本。

标签: c++ c linux unix integer


【解决方案1】:

对于那些因为问题名称而来自 Google 搜索的人:

浮点数除以整数的结果是浮点数,这是干净且安全的。示例:

#include <iostream>

int main()
{
    float y = 5.0f;
    int x = 4;
    std::cout << y/x << std::endl;
}

输出如预期:1.25

【讨论】:

    【解决方案2】:

    你的问题在这里:

    printf("c = %d\n", c);
    

    %d 将 c 格式化为整数。请改用%f

    或者std::cout &lt;&lt; "c = " &lt;&lt; c &lt;&lt; std::endl,如果你愿意的话。

    【讨论】:

    • printf("c = %f\n", c);
    • 错误在这里:printf("c = %2.f\n", c);我将其更改为 printf("c = %f\n", c);谢谢你们的帮助!
    【解决方案3】:

    在屏幕上打印时试试这个(这对我有用):

    printf("c = %f\n", c);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2014-09-29
      • 1970-01-01
      • 2014-04-13
      相关资源
      最近更新 更多