c语言long double 溢出问题
#include<stdio.h>intmain(void){floataboat=32000.0;doubleabet=2.14e9;longdoubledip=5.3...
#include <stdio.h>
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%f can be woritten %e\n",abet,abet);
printf("%f can be written %e\n",dip,dip);
return 0;
}
上边是C primer plus里的一个程序,但是我做出来的输出结果却是错误的,请教高手这是怎么回事
我用的是code blocks10.05,我测试了一下,这个东西根本不支持long double 类型
#include <stdio.h>
int main(void)
{
long double big = 1;
printf("%llf",big);
return 0;
}
输出 -0.000000 展开
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%f can be woritten %e\n",abet,abet);
printf("%f can be written %e\n",dip,dip);
return 0;
}
上边是C primer plus里的一个程序,但是我做出来的输出结果却是错误的,请教高手这是怎么回事
我用的是code blocks10.05,我测试了一下,这个东西根本不支持long double 类型
#include <stdio.h>
int main(void)
{
long double big = 1;
printf("%llf",big);
return 0;
}
输出 -0.000000 展开
展开全部
#include <stdio.h>
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%lf can be woritten %e\n",abet,abet);
printf("%Lf can be written %e\n",dip,dip);
return 0;
}
double要用lf对应
long double用Lf
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%lf can be woritten %e\n",abet,abet);
printf("%Lf can be written %e\n",dip,dip);
return 0;
}
double要用lf对应
long double用Lf
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%lf can be woritten %le\n",abet,abet); // %f --> %lf %e --> %le
printf("%llf can be written %lle\n",dip,dip); // %f --> %llf %e --> %lle
return 0;
}
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n",aboat,aboat);
printf("%lf can be woritten %le\n",abet,abet); // %f --> %lf %e --> %le
printf("%llf can be written %lle\n",dip,dip); // %f --> %llf %e --> %lle
return 0;
}
更多追问追答
追问
书上给的就是%f,但是我测试了一下code blocks 根本不支持long double类型,给它赋任何值,换任何格式说明符都是错误输出,是GCC编译器的问题还是我64位win7的问题?
追答
如果你用的gcc,那按书上的来肯定不能正常。 你试过我上面贴的吗?
我的也是gcc编译的,能正常。
如果不行的话,你可以试试 把%llf 和%lle 改成%Lf ,%Le, ll是linux下的写法。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询