while(fabs(y-dd*x)>(1e-15))
{
while((y-dd*x)<(1e-15))
{y++;}
while((y-dd*x)>(1e-15))
{x++;}
}
其中y-dd*x的值是double类型
void Rational::trans(double dd){
num=dd;mom=1;son=1;
while((dd-(int)dd)>1e-6)
{
dd=dd*10.0;
mom*=10;
}
son=(int)dd;
您好 我做的是double和分数类型的转换 程序如上 但是0.2345程序就无限循环 但是比0.2345更复杂的0.23456却可以输出结果,这是为什么 我应该如何更改 谢谢
其他0.2346 0.2344 0.2331等等都行..就是0.2345不行..不知道为什么2345.00000强制转换成int时..变成了2344. 我也很纳闷