正整數 n 的十進位位數 = (int)Math.Log10(n) + 1。
public static int DigitCount(int n) {
if (n == 0) return 1;
n = Math.Abs(n); // 處理負數
return (int)Math.Log10(n) + 1;
}
Math.Log10(0) 為負無限大,需單獨處理 0。int.MaxValue)可能產生微小誤差,建議加 1e-10 再轉整:return (int)(Math.Log10(n) + 1e-10) + 1;n.ToString().Length,適合高頻呼叫場景。