这是一道面试题。
如何计算 float 中 .
之后的位数。
例如如果给出 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
类型表示。例如float
类型中没有73.487
,c中float
表示的数为73.486999999999995
来近似
现在如何在无限循环中解决它。
注意:在 IEEE 754 规范中,32 位 float 被划分为 24+7+1 位。 7位表示尾数。
最佳答案
我怀疑这就是您想要的,因为问题要求的是 float 通常没有意义的东西,但答案如下:
int digits_after_decimal_point(double x)
{
int i;
for (i=0; x!=rint(x); x+=x, i++);
return i;
}
关于计算 float 中 `.` 之后的位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837654/