获取数字的位数

Nic*_*ick 1 c

我有一个这样的数字:int num = 36729;我想得到组成数字的数字位数(在这种情况下是5位数).

我怎样才能做到这一点?

gli*_*ite 9

使用此公式:

if(num)
  return floor(log10(abs((double) num)) + 1);

return 1;
Run Code Online (Sandbox Code Playgroud)

  • 这次编辑后你得到了我的+1.优雅.请注意,对于`num <0`(如果可能),在使用log10之前,您可以使用-1的倍数(如果还应计算 - 符号,则添加1). (2认同)