我不会写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
谢谢
谢谢贾迪普:) –