任何人都可以用C#代码给我代码来获取Mod11的验证数字吗?
感谢。
public class Mod11
{
public static string AddCheckDigit(string number);
}
示例:
Mod11.AddCheckDigit("036532");
结果:0365327
答案 0 :(得分:3)
代码在这里:
public class Mod11
{
public static string AddCheckDigit(string number)
{
int Sum = 0;
for (int i = number.Length - 1, Multiplier = 2; i >= 0; i--)
{
Sum += (int)char.GetNumericValue(number[i]) * Multiplier;
if (++Multiplier == 8) Multiplier = 2;
}
string Validator = (11 - (Sum % 11)).ToString();
if (Validator == "11") Validator = "0";
else if (Validator == "10") Validator = "X";
return number + Validator;
}
}
我希望它对某人有所帮助。
问题:如果除法的余数为0或1,则减法将产生两位数的10或11.这不会起作用,所以如果校验位为10,那么X经常被用作校验位,如果校验位是11,那么0用作校验位。如果使用X,则必须将校验位的字段定义为字符(PIC X),否则将出现数字问题。