-2
任何人都可以给我在C#中的代码...获取与Mod11的验证数字?在C#中获取校验位(Mod 11)的实现#
谢谢。
public class Mod11
{
public static string AddCheckDigit(string number);
}
例子:
Mod11.AddCheckDigit("036532");
结果:0365327
任何人都可以给我在C#中的代码...获取与Mod11的验证数字?在C#中获取校验位(Mod 11)的实现#
谢谢。
public class Mod11
{
public static string AddCheckDigit(string number);
}
例子:
Mod11.AddCheckDigit("036532");
结果:0365327
的代码是在这里:
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),否则会出现数字问题。
你有什么试过?这不是我们解决您的问题的网站。这是我们帮助您解决自己的问题的网站,并希望在此过程中提高您的理解力。说“给我代码”的问题很可能会从网站上被踢掉。 –
哦,我不知道这个!我会删除它 – Fraga
另外,你的例子特别糟糕,因为它使用八进制符号,并且校验数字在十进制数字上运行。或者你没有意识到'int'参数不保存格式,只有值? –