注册 登录
编程论坛 C++教室

浮点型和整型问题

nardoloveme 发布于 2008-10-28 09:18, 755 次点击
#include<stdio.h>
#include<math.h>
void main()
{
    int s;
    float pi,t,n;

    n=1;s=1;pi=0;t=1;
    while(fabs(t)>1e-6)
    {
        pi=pi+t;
        n=n+2;
        s=-s;
        t=s/n;
    }
    pi=pi*4;
    printf("pi=%10.6f\n",pi);
}

#include<stdio.h>
#include<math.h>
void main()
{
    int s,n;
    float pi,t;

    n=1;s=1;pi=0;t=1;
    while(fabs(t)>1e-6)
    {
        pi=pi+t;
        n=n+2;
        s=-s;
        t=s/n;
    }
    pi=pi*4;
    printf("pi=%10.6f\n",pi);
}

这两个程序有颜色的部分是我出现问题的地方,第一次我不看书本自己打出来的结果是第二个程序,n被我强调为整型,但计算的pi=4.000000,而第一个是书本的完整例题,Pi=3.141594,为什么n要为浮点型呢,它是怎么计算。
3 回复
#2
youhm2008-10-28 10:08
s/n 整型除整型结果是整型
#3
aipb20072008-10-28 13:30
t=s/n
sn均为int型,s/n为int,再复制给float型的t。
#4
Soul寂2008-10-28 17:56
你注意t 的类型!
1