想问下为什么我一用long double类型输出的结果就有问题

stef3390 2009-07-24 10:12:54
这个是我写的一个计算水分子多少的程序

#include <stdio.h>
int main(void)
{
long double h2o; /* 水分子个数 */
float quart; /* 品脱值 */
printf("Enter water's quart value: ");
scanf("%f",&quart);
h2o = quart * 950.0 / 3.0e-23;
printf("h2o = %Le",h2o);
system("pause");
return 0;
}

为什么用double类型来说明h20输出结果对的(但是精确度不够),但是一用long double输出结果就不对了

我用的Dev-c++ 4.9.9.2
...全文
271 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stef3390 2009-07-24
  • 打赏
  • 举报
回复
想知道原因。。。。。
imbigsnake1 2009-07-24
  • 打赏
  • 举报
回复
用VS2005也没错
imbigsnake1 2009-07-24
  • 打赏
  • 举报
回复
2楼打错了是LF
stef3390 2009-07-24
  • 打赏
  • 举报
回复
没错的呀,要输出带指数的浮点数是%e
输出浮点值也是%Lf吧?
imbigsnake1 2009-07-24
  • 打赏
  • 举报
回复
应该是LD吧 printf("h2o = %Le",h2o);
stef3390 2009-07-24
  • 打赏
  • 举报
回复
用TURBOC3.0 编译就没有问题,这是什么原因.....

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧