|
发表于 2004-6-15 16:49:50
|
显示全部楼层
一个能用的笨办法,(利用有效位定义计算)
- main()
- {
- float num=7.3342;
- int count=0;//记录小数位数
-
- char buf[30];
- char *p;
-
- sprintf(&buf[0], "%f\n", num); // 转成字符串后,后面会加0, 如7.334200
-
- printf(buf);
-
- p = buf + strlen(buf);
- while( *p != '.')// 去掉后面无效的0
- {
- if( *p > '0' )
- {
- break;
- }
- p--;
- }
- while( *p != '.') // 计算有效位数
- {
- printf("%c", *p--);
- count++;
- }
-
- printf("count: %d\n",count);
- }
复制代码 |
|