有没有比这种方法更简洁的方法来获取 int 中的位数?
int numDigits = String.valueOf(1000).length();
原文由 fnst 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有比这种方法更简洁的方法来获取 int 中的位数?
int numDigits = String.valueOf(1000).length();
原文由 fnst 发布,翻译遵循 CC BY-SA 4.0 许可协议
对数是你的朋友:
int n = 1000;
int length = (int)(Math.log10(n)+1);
注意:仅对 n > 0 有效。
原文由 Dmitry Brant 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
您的基于字符串的解决方案非常好,没有什么“不整洁”的地方。你必须意识到,在数学上,数字没有长度,也没有数字。长度和数字都是特定基数(即字符串)中数字的 物理表示 的属性。
基于对数的解决方案(某些)与基于字符串的解决方案在内部执行的操作相同,并且可能执行速度更快(微不足道),因为它只产生长度并忽略数字。但我实际上不会认为它的意图更清晰 - 这是最重要的因素。