怎么求一个float的小数位数(在线等)
随便给一个float的数,怎么写一个函数求出它的小数部份的位数啊??
[解决办法]
这个你要看不同机器的浮点数的表示方法了。
一般的浮点数的格式为:(以INTEL的X86说明)
符号位+阶码+尾数
其中符号位1位,阶吗8位(包括阶符),尾数23位(隐含一位最高位,故共24位)
所以你基本上是不知道一个浮点数的小数位数的。不过范围可以确定。
当然了,你可以指定一个浮点数的位数的。呵呵
[解决办法]
楼主测试下
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{int i=0,j=0;
char c[8];
printf( "please input a floatnum\n ");
gets(c);
while(c[i]!= '. ')
{
if(c[i]== '\0 ')
{
i=j=0;
break;
}
i++;
j++;
}
printf( "xiaoshu:0. ");
if(i!=0)
{
for(;i <strlen(c);i++)
printf( "%c ",c[i+1]);
printf( "\n ");
printf( "geshu:\t%d ",strlen(c)-(j+1));
}
else
{
printf( "0 ");
printf( "\n ");
printf( "geshu:0 ");
}
getch();
}