首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

高精度转换低精度有关问题

2012-03-27 
高精度转换低精度问题main(){double m65536double n65535printf(\n%d,%d,(int)m,(int)n)为什么输出

高精度转换低精度问题
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了

热点排行