【问题标题】:C - Print int variable in floatC - 以浮点数打印 int 变量
【发布时间】:2016-11-10 15:57:25
【问题描述】:

在寻找所有答案后,我仍然无法为我的代码找到解决方案。

变量需要是 INT 类型,但在一种情况下,我需要打印十进制解决方案。我已经尝试过铸造,仍然没有工作。

#include<stdio.h>

int main()
{
  int sum = 6;
  int product = 24;
  int differenz, result, division, rest, decimal;

  differenz = ++product - sum++;
  result = differenz * sum;
  division = result / 9;
  rest = result % 9;
  decimal = result / 9.0; 

  printf("Result = %d\n", result);
  printf("Integer division = %d\n", division);
  printf("Remainder = %d\n", rest);
  printf("Division = %.2f\n", (float) decimal);


  return 0;
}

输出:

Result = 133

Integer division = 14

Remainder = 7

Division = 14.00 <-- Here I am supposed to print 14.76

我也试过了:

float b = (float) decimal;
printf("Division = %.2f\n", b);

除法 = 14.00

任何提示将不胜感激。 提前致谢!

【问题讨论】:

  • “变量需要是 INT 类型”。好吧,那你就完蛋了。 int 不能存储浮点值。
  • 这里division = result / 9;是一个整数除法,因此结果也是一个整数。 Variables needs to be type INT, but in one case I need to print decimal solution -- 使用 int 变量是不可能的。如果int 能够表示浮点数,我们根本不需要浮点数。
  • 如果您的任务是仅使用整数显示十进制值,则需要引入缩放。
  • 一个 integer 变量存储 integer 值,而不是浮点值。这个问题非常明显,可以在调试器中使用单步执行并观察变量。

标签: c floating-point int


【解决方案1】:

这是因为您将变量小数创建为 int 并且您尝试将其打印为浮点数。

要么将变量创建为浮点数,要么将其打印为整数,但不能混合使用。

此外,将 int 转换为 float 只会添加“.00”,您将无法修改它。

【讨论】:

  • 这回答了我的问题。然后我会带着花车去。我们会看看会发生什么。
【解决方案2】:

变量“decimal”如果声明为整数,则不能正确表示除法的结果。您需要将其声明为浮点数,如下所示:

int main()
{
  ...
  int differenz, result, division, rest;
  float decimal;
  ...
  printf("Division = %.2f\n", decimal);
  return 0;
}

【讨论】:

  • 我认为投射会有所帮助。因为,在任务中要求使用 INT 变量。看来我得跟着花车去了。
猜你喜欢
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2019-04-07
  • 2023-03-04
  • 2015-06-29
  • 2019-11-07
相关资源
最近更新 更多