有人可以在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投射到更高的值......