从整数中获取第七位数字

cod*_*joe 5 .net c# algorithm math

我有一个10位数的整数.我需要获得该整数的第7位数.

我找到了一个数学解法来获得整数的第一个数字.

var myDigit = 2345346792;

var firstDigit = Math.Abs(myDigit);
while (firstDigit >= 10)
{
     firstDigit /= 10;
}
Run Code Online (Sandbox Code Playgroud)

我如何从myDigit获得第七位数字?我试图避免强制转换为字符串并执行子字符串.我希望看到获得第七位数字的数学版本.

任何人?

Moh*_*adi 12

var seventh_digit = ( myDigit/1000000 ) % 10;
Run Code Online (Sandbox Code Playgroud)


Dav*_*Yaw 10

int getSeventhDigit(int number)
{
    while(number >= 10000000)
        number /= 10;

    return number % 10;
}
Run Code Online (Sandbox Code Playgroud)

这将取7位或更少位数的最后一位数字.

对于8位或更多位数字,它将除以10,直到数字长7位,然后取最后一位数字.


Roa*_*ast 6

没有while循环的数学解决方案:

int myDigit = 2345346792;

var seventh = (myDigit / 1000000) % 10;

//result should be 5, your seventh digit from the right
Run Code Online (Sandbox Code Playgroud)


Mat*_*dge 5

更一般地,您可以从数字创建一个(从零开始的)数组:

uint myDigit = 2345346792;

int[] digits = new int[10];
for (int i = 9; i >= 0; i--)
{
    digits[i] = (int)(myDigit % 10);
    myDigit /= 10;
}
Run Code Online (Sandbox Code Playgroud)

这对于您想要进行的任何操作都应该很有用。


Ale*_*lek 5

var nthDigit = (int)((number / Math.Pow(10, nth - 1)) % 10);
Run Code Online (Sandbox Code Playgroud)

哪里nth是数字的第 n 位。