这是一个面试问题。
后面的位数怎么计算.
以浮点数表示。
例如如果给定 3.554 输出=3
43.000 输出=0。
我的代码片段在这里
double no =3.44;
int count =0;
while(no!=((int)no))
{
count++;
no=no*10;
}
printf("%d",count);
有一些数字无法用float
类型。例如,没有73.487
in float
类型,表示的数字float
在c中是73.486999999999995
来近似它。
现在如何解决它,因为它陷入了无限循环。
注意:在 IEEE 754 规范中,32 位浮点数被划分为 24+7+1 位。 7 位表示尾数。
我怀疑这就是您想要的,因为问题所要求的内容通常对浮点数没有意义,但答案如下:
int digits_after_decimal_point(double x)
{
int i;
for (i=0; x!=rint(x); x+=x, i++);
return i;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)