在C中,为什么从float更改为int会改变数字?

时间:2017-02-06 15:17:27

标签: c floating-point int cs50

很抱歉,如果这是一个菜鸟问题,但我是C的新手。我正在解决将float更改为int的问题(请求float用户但将其作为int返回。我以为我通过乘以100获得了解决方案,但我发现如果用户输入.59作为输入并将其乘以100,则结果为58.我试图找到解决方案,为什么会发生这种情况,但无法解决问题。吨。有谁知道为什么会这样,以及如何解决它?我将保留以下代码:

#include <stdio.h>
#include <cs50.h>

int main(void)
{
  float money;
  do 
  {
    printf("How much change is owed?: ");
    money = GetFloat();
  }
  while (money<0);
  int x = money * 100;
  if (money >= .25) 
  {
    printf("%f times 100 = %d\n", money, x);
  }
}

结果如下:

How much change is owed?: .59 
0.590000 times 100 = 58

0 个答案:

没有答案