JoJo48 2021-10-14 19:19 采纳率: 0%
浏览 41

C语言,关于多项式求π的精度问题。

题目描述:用公式π/4≈1-1/3+1/5-1/7+ 求其近似值,直到发现某一项加数的绝对值小于1e-6为止。
我写了如下图所示的程序来解决这个问题,得到的结果离计算器计算出来的π/4的大小(0.785 )差距很多,请问这是因为什么?float精度的问题吗?还是?

img


代码段:

        int i=0;            //控制循环
    float mu=1.0;        //分母的值
    float present=-1.0;    //当前加数
    float sum=0.0;        //求和
    for(i=0;;)
    {
        if(fabs((float)present)<1e-6)
            break;
        else
        {
            present=-(present/mu);
            sum+=present;
            mu+=2;        
        }
    }
    printf("π/4的值为:%f\n",sum);

感谢!

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-10-14 19:22
    关注
    #include <stdio.h>
    #include <math.h>
    int main()
    {
            int i=0;            //控制循环
        float mu=1.0;        //分母的值
        float present=-1.0;    //当前加数
        float sum=0.0;        //求和
    	int flag = 1;
        for(i=0;;)
        {
            if(fabs((float)present)<1e-6)
                break;
            else
            {
                present=1/mu*flag;
                sum+=present;
                mu+=2;     
    			flag = -flag;
            }
        }
        printf("π的值为:%f\n",sum*4);
    
    	return 0;
    } 
    评论

报告相同问题?

问题事件

  • 创建了问题 10月14日

悬赏问题

  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参