求解浮点数的小数位??急!!!!!
求解一个浮点数的有效小数位的数目,暂定其小数位的总精度不超过8
问题:游戏开发中随机率的一种求解
int counter( float n)
{
if(n>=1) return -1;
register int count=0;
register float number=n;
for(;number!=(unsigned int)number;count++)
{
number*=10;
}
//由于浮点数有7位指数,或者不同的机器精度不同
if(count>=8) return round(number);
return count;
}
//修正函数
int round(float temp)
{
int n=(int)temp;
while((n % 10)!=0) n++;
n=n/1000;
while((n % 10)==0) n=n/10;
int cn=1;
while((n/10)>1) {
n=n/10;
cn++;
}
return cn;
}
写了2个函数,但是没有能够完全解决问题,求解??round函数遇到转换越界,无法判断。
请大家讨论!