测浮点数的位数牵扯到一个精度的问题,用普通的测整形数值的方法不能实现,于是我自己写了一个测浮点数的函数。
#include <stdio.h> //for printf int length(double num) { int len=0; while(num>0.001)//这里非常重要:控制精确到小数点后第几位(取值影响计数结果) { num=num/10; printf("%d : %f ",len,num); len++; } return len; } int main(void) { printf("%d",length(12345.678)); return 0; }