获取int中位数的方法?

新手上路,请多包涵

有没有比这种方法更简洁的方法来获取 int 中的位数?

 int numDigits = String.valueOf(1000).length();

原文由 fnst 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 825
2 个回答

您的基于字符串的解决方案非常好,没有什么“不整洁”的地方。你必须意识到,在数学上,数字没有长度,也没有数字。长度和数字都是特定基数(即字符串)中数字的 物理表示 的属性。

基于对数的解决方案(某些)与基于字符串的解决方案在内部执行的操作相同,并且可能执行速度更快(微不足道),因为它只产生长度并忽略数字。但我实际上不会认为它的意图更清晰 - 这是最重要的因素。

原文由 Michael Borgwardt 发布,翻译遵循 CC BY-SA 2.5 许可协议

对数是你的朋友:

 int n = 1000;
int length = (int)(Math.log10(n)+1);

注意:仅对 n > 0 有效。

原文由 Dmitry Brant 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题