-1

顺便说一句,使用 Java。但通常人们似乎会做这种事情。

int numDigits = (int)(log10(num)+1); //can explicitly floor, or casting to int will do that

但是 log10(0) = -INF,这意味着我的长度被设置为最大的负整数值。

我想我可以提出条件

if (numDigits is negative)
    numDigits = 1 //not 0 because I'm counting 0 as 1 digit.

这用于实现自然数构造函数,以便人们了解我的问题。

4

2 回答 2

0

您列出的代码意味着 -10 的 numDigits 值为 1,我认为这是不正确的。

如何将数字转换为字符串并获取字符串长度?

于 2012-11-07T15:12:46.530 回答
0

如果您有特定的优化问题,请使用日志解决方案:

int length = (number ==0) ? 1 : (int)Math.log10(number) + 1;

否则,我建议您使用 String.valueOf 解决方案,因为对于未来的开发人员/维护人员来说,它更具可读性和更容易理解:

int length = String.valueOf(number).length();
于 2012-11-07T15:18:29.950 回答