Shinone+const 2022-09-27 12:53 采纳率: 92%
浏览 115
已结题

使用long double类型数据计算显示0

本来想通过换一个数据类型,从double换成long double来增加计算精度(不过后来发现double已经够了),结果发现计算结果都为零?

#include<stdio.h>
#include<math.h>
#define pai 3.141592
int main(void)
{
  double r;
   double area;
   double volumn;

  scanf("%lf",&r);
  printf("%lf\n",r);//打印出来为检验r是否正确输入了


  area = 4*pai*r*r;
  volumn = (4*pai*pow(r,3))/3;

  printf("%.6lf\n%.6lf",area,volumn);

 return 0;
}
运行结果:
输入:2
输出: 2.000000
          50.265472
           33.510315
Process returned 0 (0x0)   execution time : 1.165 s
Press any key to continue.


转换成long double后

#include<stdio.h>
#include<math.h>
#define pai 3.141592
int main(void)
{
  double r;
  long double area;
  long double volumn;

  scanf("%lf",&r);
  printf("%lf\n",r);


  area = 4*pai*r*r;
  volumn = (4*pai*pow(r,3))/3;

  printf("%.6lf\n%.6lf",area,volumn);

 return 0;
}

输入:2(以下为输出)
2.000000
0.000000
0.000000
Process returned 0 (0x0) execution time : 2.131 s
Press any key to continue.

无论输入什么数字,下面两个计算结果都为0.为什么会这样呢

  • 写回答

5条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-27 14:00
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 在ISIS中什么是IP从地址
  • ¥15 压测时,并发量过高时,响应时间出现尖刺
  • ¥15 关于vmprotect3.8.4虚拟文件一项
  • ¥15 在不用IT调试的情况下怎样能连外网
  • ¥20 C#调用虚拟键盘TabTip.exe
  • ¥15 Qt4代码实现下面的界面
  • ¥15 CCS离散化传递函数与仿真不一致
  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确