见代码
#include<stdio.h>void main()
{
float Pl = 3.14159;
double s,r=5;
s = r*r*Pl;
printf("s=%d\n",s);
}
为什么这个输出为s=1342177280
printf("s=%d\n",s);
s是浮点型的
#include<stdio.h>
int main()
{
float Pl = 3.14159;
double s, r=5;
s = r*r*Pl;
printf("s=%f\n",s);
} 你printf里面以整数形式打印双精度浮点数 数值自然是不对劲了%d改成%lf
printf("s=%d\n",s);//错误!改成下面这样!
printf("s=%lf\n",s);
yuxijian2020 发表于 2021-4-12 19:32
你printf里面以整数形式打印双精度浮点数 数值自然是不对劲了%d改成%lf
谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗? 又见三土 发表于 2021-4-12 19:36
谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗?
无论是与不是,都没有研究的必要 又见三土 发表于 2021-4-12 19:36
谢谢,我知道这个原因,我想问的是为什么会变成那一段数字,是随机的吗?
并不是随机的,是它找到了你变量s的首地址,然后取了4个字节以十进制整数输出
不过这确实没什么意义,本身用法错了,值就是没有意义的 yuxijian2020 发表于 2021-4-12 19:55
并不是随机的,是它找到了你变量s的首地址,然后取了4个字节以十进制整数输出
不过这确实没什么意义,本 ...
好的,谢谢{:5_109:}
页:
[1]