观小甲鱼0基础学C语言005章 提问
#include <stdio.h>void main ()
{
double s,Pi=3;
int r=5;
s=r*r*Pi;
printf("s=%d\n",s);
}
我把代码改成这样 ,为什么得到的结果是0?
牡丹说的对。我这里再补充一下。我用的vc6.0编译器,double占用了8个字节,整形是4个字节,如果打印的是整数,printf会只取低4个字节(全是0),所以打印结果是0。
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<64>a(75.0);
bitset<32>b(75);
cout<<"75.0="<<a<<endl;
cout<<"75="<<b<<endl;
return 0;
} s是double要用%lf不用%d 流行语 发表于 2014-7-15 09:45
牡丹说的对。我这里再补充一下。我用的vc6.0编译器,double占用了8个字节,整形是4个字节,如果打印的是整 ...
还是你的补充让我搞明白了..谢谢 互相学习,共勉进步!
页:
[1]