我正在尝试用 C# 编写一段代码来查找整数的数字位数,该代码对所有数字(负数和正数)都非常有效,但我在 10、100、1000 等方面遇到问题, 它显示的位数比数字的实际位数少一位。比如 1 代表 10 和 2 代表 100..
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);
最佳答案
你的 while 条件是 Math.Abs(n) > 1
,但是在 10 的情况下,你只是第一次大于 1。您可以将此检查更改为 >=1
,这应该可以解决您的问题。
do
{
n = n / 10;
i++;
}
while(Math.Abs(n) >= 1);
关于c# - 在C#中查找数字的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27471612/