判断一个十进制数的位数

zhangwuji154 2010-04-12 03:20:32
不太想用log之类的函数
比如我要求用户输入不能超过N位长度的整数,这个N是可变的

当然,最简单的办法是
if(i >= pow(10, N))
{
数字超过长度。
}
...全文
405 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
IranCyberArmy 2010-04-12
  • 打赏
  • 举报
回复
可是,这样写,言简意赅呀,
不知道,
我也不清楚,哪位大牛说说,哪种方法最好
zhangwuji154 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 irancyberarmy 的回复:]

那样还不如log呢

你们没有抓住事件的本质,
if(strlen(itoa(i))>N)
{}
[/Quote]
估计itoa里面也用到了2楼那样的方法,还不如用他那个呢
IranCyberArmy 2010-04-12
  • 打赏
  • 举报
回复
那样还不如log呢

你们没有抓住事件的本质,
if(strlen(itoa(i))>N)
{}
Eleven 2010-04-12
  • 打赏
  • 举报
回复
int GetIntDigit(int nValue)//得到nValue的位数
{
int nPos = 1;
while(nValue/10)
{
nValue = nValue/10;
++nPos;
}
return nPos
}
Eleven 2010-04-12
  • 打赏
  • 举报
回复
DWORD dwValue = 12353546;
int nPos = 1;
while(dwValue/10)
{
dwValue = dwValue/10;
++nPos;
}
CString strText(_T(""));
strText.Format(_T("%d"), nPos);
AfxMessageBox(strText);

这样???

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧