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

gcc类型转换很奇怪的有关问题

2013-09-06 
gcc类型转换很奇怪的问题一个double,转换成64位的long long int,数值竟然不一样,源码:#include stdio.h#

gcc类型转换很奇怪的问题
一个double,转换成64位的long long int,数值竟然不一样,源码:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
  double f=-77059200780;
  long long int i=(long long int)f;
  printf("%lf\n",f);
  printf("%ld\n",i);
}

结果:
-77059200780.000000
250210548

难道long long int的数值范围比double还小?为什么会这样,正确的i应该是-77059200780才对啊。谢谢高手指点!

热点排行