小编zzz*_*zzz的帖子

了解从整数到浮点数的强制转换

有人可以在32位机器上解释这个奇怪的输出吗?

#include <stdio.h>

int main() {
  printf("16777217 as float is %.1f\n",(float)16777217);
  printf("16777219 as float is %.1f\n",(float)16777219);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量

16777217 as float is 16777216.0
16777219 as float is 16777220.0
Run Code Online (Sandbox Code Playgroud)

奇怪的是,16777217投射到较低的值,而16777219投射到更高的值......

c floating-point precision int floating-point-conversion

6
推荐指数
1
解决办法
218
查看次数