以前计算一个数值的位数,使用的基本上就是不停的除以10,再计数,看到底有多少位数。
今天发现可以考虑先将数字转换为字符串,然后通过string.length获得数值的位数,这样做方便的多。
string num2str1(unsigned int num) { stringstream ss; ss<<num; return ss.str(); } string num2str2(unsigned int num) { char str_[10]; sprintf_s(str_,"%d",num); string str = str_; return str; } ///<直接计算出数字的位数 unsigned int getLenOfNum1(unsigned int num) { unsigned int counter = 1; while (num/10) { counter++; num = num/10; } return counter; } ///<先转换为字符串,然后在计算位数 unsigned int getLenOfNum2(unsigned int num) { return num2str1(num).length(); }
时间: 2024-10-08 18:16:47