驗證統一編號 a) 共八位:D1 D2 D3 D4 D5 D6 D7 D8 b) 各數字分別乘以 1, 2, 1, 2, 1, 2, 4, 1 D1*1 => c1 D2*2 => a1b1 D3*1 => c2 D4*2 => a2b2 D5*1 => c3 D6*2 => a3b3 D8*1 => c4 D7*4 => a4b4 c) 公式:Y = a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a4 + b4 + c4 若 Y 能被 10 整除則正確。例:04702088 d) D7 為 7 時,若經上述方法不能整除時,則: a4 + b4 ==> a5b5, Y = a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a5 + c4 能被 10 整除仍算正確。例:00651474, 00238778 e) 參考下面範例: // 檢核統一編號 function CheckBANO(const BANO: String): Boolean; var i: integer; c1, c2, c3, c4, a1, a2, a3, a4, b1, b2, b3, b4, a5: Integer; begin Result := False; if Length(BANO) <> 8 then Exit; c1 := StrToIntDef(BANO[1], -1); c2 := StrToIntDef(BANO[3], -1); c3 := StrToIntDef(BANO[5], -1); c4 := StrToIntDef(BANO[8], -1); a1 := StrToIntDef(BANO[2], -1) * 2 div 10; b1 := StrToIntDef(BANO[2], -1) * 2 mod 10; a2 := StrToIntDef(BANO[4], -1) * 2 div 10; b2 := StrToIntDef(BANO[4], -1) * 2 mod 10; a3 := StrToIntDef(BANO[6], -1) * 2 div 10; b3 := StrToIntDef(BANO[6], -1) * 2 mod 10; a4 := StrToIntDef(BANO[7], -1) * 4 div 10; b4 := StrToIntDef(BANO[7], -1) * 4 mod 10; Result := (c1+c2+c3+c4+a1+a2+a3+a4+b1+b2+b3+b4) mod 10 = 0; if not Result and (BANO[7] = '7') then begin a5 := (a4+b4) div 10; Result := (a1+b1+c1+a2+b2+c2+a3+b3+c3+a5+c4) mod 10 = 0; end; end;