首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP -获取数字中的位数长度

PHP -获取数字中的位数长度
EN

Stack Overflow用户
提问于 2015-02-10 22:12:30
回答 12查看 70K关注 0票数 24

我想问一下怎样才能得到Integer中的数字长度。例如:

$num = 245354;
$numlength = mb_strlen($num);

在本例中,$numlength应为6。不知何故我不能让它工作?

谢谢

编辑:上面的示例代码--^及其各自的方法mb_strlen();工作得很好。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2015-02-10 22:13:30

也许:

$num = 245354;
$numlength = strlen((string)$num);
票数 68
EN

Stack Overflow用户

发布于 2015-02-10 22:36:31

被接受的答案不适用于大数字。要计算任意数字的长度,更好的方法是通过检查0来调用floor(log10($num) + 1)

$num = 12357;
echo $num !== 0 ? floor(log10($num) + 1) : 1; // prints 5

它有多个优点。它更快,你不需要进行类型转换,它适用于大数字,它适用于不同的数字系统,如bin,hex,oct。

该方程以10为底进行对数运算,然后将其作为底数并加1。

这个解决方案可以独立地在底上工作,所以如果你想计算二进制或十六进制的长度,只需更改对数的底。

Working fiddle

票数 17
EN

Stack Overflow用户

发布于 2019-11-13 08:29:29

可接受的解决方案在评估负数时会出现问题。

它与正数一起工作:

$num = 245354;
$numlength = strlen((string)$num);
// Result: 6

但如果是负数,则将(-)添加到计数:

$num = -245354;
$numlength = strlen((string)$num);
// Result: 7

快速解决方法:

$num = -245354;
$numlength = strlen((string)abs($num));
// Result: 6
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28433798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档