查找C#中数字的位数

sam*_*x73 4 c# numbers digits

我正在尝试在C#中编写一段代码来查找整数的数字,这段代码适用于所有数字(负数和正数),但我有10,100,1000等问题,它显示比数字的实际位数少一个数字.像10表示1和100表示​​2 ..

    long i = 0;
    double n;
    Console.Write("N? ");
    n = Convert.ToInt64(Console.ReadLine());

    do
    {
        n = n / 10;
        i++;
    }
    while(Math.Abs(n) > 1);
    Console.WriteLine(i);
Run Code Online (Sandbox Code Playgroud)

Joh*_*ner 6

你的状态是Math.Abs(n) > 1,但在10的情况下,你第一次只有大于1.您可以更改此检查>=1,这应该可以解决您的问题.

do
{
    n = n / 10;
    i++;
}
while(Math.Abs(n) >= 1);
Run Code Online (Sandbox Code Playgroud)