c语言一个小数按%d输出和先赋值给一个整型为什么结果不一样?

c语言一个小数按%d输出和先赋值给一个整型为什么结果不一样。希望能有一个详细分析。用的vc6.0
2026年09月20日 03:44
有1个网友回答
网友(1):

先赋给int型变量时,按规则只取整数部分,比如int x=3.1415926;,实际x==3且是int型;而如果printf("%d\n",x);,由于%d要把x按补码解释,可是实际上x是按阶码+尾数原码存放的,所以把“阶码+尾数原码”按补码解释就成了一个不可思议的数字。