当所有输入均为整数时,为什么使用float而不是int会给我带来不同的结果?

时间:2019-03-27 21:49:17

标签: c

void main( )
{
    int no = 123;
    while(no)
    { 
        no /= 10;
        printf("%d", no % 10);
    }
}

结果:

  • 2
  • 210
  • 21
  • 213

当我所有的输入都是整数时,为什么使用float而不是int会给我带来不同的结果?

1 个答案:

答案 0 :(得分:0)

如果将int no更改为float no,还必须将printf格式更改为%f,否则行为将不确定。此外,没有为%自变量定义float运算符,那么您实际上尝试了什么代码来进行观察?

输出不同的原因是执行不同的计算:整数和浮点数的除法行为不同,(当分子是分母的倍数时)。