一旦计算出一个数值数字,基本上它是不断分裂使用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-22 07:23:02