小雾3378873
double ----64位float-----32位int-----16位少位转多位时不足的用0补足,多位转少位就有可能丢数,原文中:#include <stdio.h>int main(){ double num =(int)2.5; //取2.5的整数部分放入double 类型的num中,此时num=2.000000…… printf("num的整数部分是%d",num); //因为%d是带符号的十进制整数格式符,此时又把2.000000……转换成整数, return 0; //多位转少位时,这个数就丢掉了,所以结果为0。所以错误应该在这里。}