获得数字的大小

时间:2016-02-01 23:08:07

标签: c#

哪种方法更适合获取数字的大小。

SomeInt.ToString().Length

(int)Math.Log10(SomeInt) + 1

2 个答案:

答案 0 :(得分:4)

如果我是你,我会为此避免使用Math.Log10。它将打破零和负数。追踪奇异异常所花费的时间将超过性能差异数万次。

答案 1 :(得分:0)

在性能方面你应该对它进行基准测试。直观地说,使用对数的版本应该更快,因为它只进行数学运算。 相反,使用字符串的版本必须分配它,将数字转换为字符串,然后获取字符串的长度。

为了使所有内容更加健壮和可读,请确保引入函数int SizeOfNumber(int number)来包装您的实现。这样可以更容易理解代码的作用。

您还应注意,这些方法都不适用于负值。 ToString版本将包含-符号,Log10未定义为零和负数。