哪种方法更适合获取数字的大小。
SomeInt.ToString().Length
或
(int)Math.Log10(SomeInt) + 1
答案 0 :(得分:4)
如果我是你,我会为此避免使用Math.Log10
。它将打破零和负数。追踪奇异异常所花费的时间将超过性能差异数万次。
答案 1 :(得分:0)
在性能方面你应该对它进行基准测试。直观地说,使用对数的版本应该更快,因为它只进行数学运算。 相反,使用字符串的版本必须分配它,将数字转换为字符串,然后获取字符串的长度。
为了使所有内容更加健壮和可读,请确保引入函数int SizeOfNumber(int number)
来包装您的实现。这样可以更容易理解代码的作用。
您还应注意,这些方法都不适用于负值。 ToString
版本将包含-
符号,Log10
未定义为零和负数。