#include
using namespace std;
double power(double x,int n);
int main()
{
int n=0,i,p,q,t;
double x,y;
for(t=1;t>=1;t++)
{
cout>x;
y=x;
for(n=0;(double)y!=(int)y;n++)
{
y*=10;
}
p=(double)y;
q=power(10,n);
while((p%2==0)&&(q%2==0))
{
p=p/2;
q=q/2;
}
while((p%5==0)&&(q%5==0))
{
p=p/5;
q=q/5;
}
cout=1)
{
n--;
d*=x;
}
return(d);
}
这个程序将小数华为分数,0.21,0.22,0.24,0.25,0.125····都能计算。为啥不能计算0.23,0.28呢?
在线等,那位高手指点指点
我刚学c++,对浮点数不太清楚
|