我不會寫Ruby代碼,但我發現這個Ruby代碼來計算校驗和AEMO NMIAEMO校驗支持Ruby代碼
def checksum
summation = 0
@nmi.reverse.split(//).each_index do |i|
value = nmi[nmi.length - i - 1].ord
value *= 2 if i.even?
value = value.to_s.split(//).map(&:to_i).reduce(:+)
summation += value
end
checksum = (10 - (summation % 10)) % 10
checksum
end
可能有人請幫我解釋這是什麼意思行?
value = value.to_s.split(//).map(&:to_i).reduce(:+)
我嘗試將上面的代碼轉換爲VBA for excel。
對於 「4103738516」 的輸入將給你8 「4102030716」 ==> 2 「QFFF0000LV」 ==> 7
在這個文件的第40頁有JavaScript代碼來計算的話,但我可以不理解代碼。
https://www.aemo.com.au/-/media/Files/PDF/0610-0008-pdf.pdf
謝謝
謝謝賈迪普:) –