C - 在float中打印int变量

时间:2016-11-10 15:57:26

标签: c floating-point int

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

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

array<int, 6> ca{ 38,38,40,38,40,37 };
cout << count(ca.begin(), ca.end(), 40) << '\n';

int c_style_array[] = { 38,38,40,38,40,37 };
cout << count(std::begin(c_style_array), std::end(c_style_array), 40) << '\n';

输出:

#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

Still Division = 14.00

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

2 个答案:

答案 0 :(得分:1)

这是因为您创建了十进制变量作为int,并且您尝试将其作为浮点数打印。

将变量创建为浮点数,或将其打印为int,但不能将它们混合使用。

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

答案 1 :(得分:0)

变量&#34;十进制&#34;如果声明为整数,则无法正确表示除法的结果。您需要将其声明为浮点数,如下所示:

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