2010-06-26 93 views
-1

我似乎無法弄清楚我的支票號碼有什麼問題!Luhn支票號碼

有時,它產生2長度的校驗位值

1277531815000110 <-- check digit is double value?????? 
1277532495000110 <-- check digit is double value??????? 
1277534649000110 <-- check digit is double value??????? 
127753185300011 <-- good! 
127753208500019 <-- good! 

所有生成的數字是有效的,其可以在http://www.ee.unb.ca/cgi-bin/tervo/luhn.pl?N=127753224800013

CODE檢查:http://dl.dropbox.com/u/678582/Email/GenerateAN.txt

+2

您的代碼鏈接將轉到404。代碼是否太長而無法在此處發佈? – 2010-09-14 19:52:29

+2

沒有代碼,應該刪除這個問題。 – Noah 2011-08-15 19:47:39

+0

工作代碼在哪裏! – 2012-09-12 23:16:33

回答

2

這線的問題:

CheckSumNumber = (((sum/10) + 1) * 10) - sum; 

sum已經是10的倍數時,會生成10個數字。基本上,你只是試圖取整。這是一個簡單的方法:

CheckSumNumber = (((sum + 9)/10) * 10) - sum; 
+0

只要打敗我吧! – Oded 2010-06-26 06:44:12