高精度转换低精度问题main(){double m=65536;double n=65535;printf("\n%d,%d",(int)m,(int)n);为什么输出结果是:0,-1请各位帮忙解答,谢谢了[解决办法]楼主用的是 16位编译器(如Turbo C2.0)吧?在16位的系统下 int 的取值范围是-32768到32767你自己再算下就好 注意32767+1 之后就变为-32768了