如果double数据比较小的时候,是没有什么事的。
一旦double数值达到一定程度(没有仔细研究),就会出现如下情况。
#include <stdio.h>
//double doubleA = 301104440.0;
double doubleA = 301104440.0;
double doubleB = 30.0;
long longA = 0;
long longB = 0;
int intA = 0;
int intB = 0;
void double2long()
{
longA = (long)doubleA;
longB = (long)doubleB;
printf("\n======longA=%ld *** doubleA=%lf====\n",longA,doubleA);
printf("\n======longB=%ld *** doubleB=%lf====\n",longB,doubleB);
printf("\n sizeof(long) = %d sizeof(double) = %d\n",sizeof(long),sizeof(double));
}
int main()
{
double2long();
}
编译、执行。
没有任何异常。
把double数值增大10倍。
longA变量异常。