当我尝试为double
变量分配一个大号时,我收到此警告
sqrt.c:8:11:警告:整数常量对于其类型而言太大 double x = 28462391747582051264412870770688;
#include <stdio.h>
#include <math.h>
#include <limits.h>
#include <float.h>
int main() {
printf("MAX_DBL=%.53f\n",DBL_MAX);
double x=28462391747582051264412870770688;
}
然而,MAX_DBL大于我尝试分配的数字。
答案 0 :(得分:5)
double x=28462391747582051264412870770688;
数字文字的类型不是double
,而是int
。这个数字对于int
来说太大了。
如果您使用double
字面值:
double x=28462391747582051264412870770688.0;
警告消失,但如果需要,数字将四舍五入到下一个可表示的double
。 (此处的特定数字可以表示,as @chux noticed。)