-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'參數不保存格式,只有值? –