C#生成模10检验位
原始数字 | 7 | 9 | 9 | 2 | 7 | 3 | 9 | 8 | 7 | 1 | x |
---|---|---|---|---|---|---|---|---|---|---|---|
偶数位乘2 | 7 | 18 | 9 | 4 | 7 | 6 | 9 | 16 | 7 | 2 | x |
将数字相加 | 7 | 9 | 9 | 4 | 7 | 6 | 9 | 7 | 7 | 2 | =67 |
5.实现代码
public static int GetLuhn(string str)
{
int n = 0;
int iLen = str.Length;
for (int j = iLen; j > 0; j--)
{
if ((iLen - j) % 2 == 0)//偶数位
{
int sNum = int.Parse(str[j - 1].ToString()) * 2;//偶数位乘以2
//十位数值+个位数值
string s = sNum.ToString();
int s1 = 0;
if (s.Length == 2)
s1 = int.Parse(s[0].ToString()) + int.Parse(s[1].ToString());
else
s1 = int.Parse(s[0].ToString());
n = n + s1;
}
else
{
n = n + int.Parse(str[j - 1].ToString());
}
}
n = 10 - (n % 10);
if (n == 10)
n = 0;
return n;
}