小编g_a*_*_ap的帖子

Ruby 整数比较给出错误的结果

当我编写以下代码时,我期望最后几行给出 afalse和 0 结果。你能帮我理解为什么会发生这种情况吗?

id=408983265
a = id.to_s.each_char.map(&:to_i)
valid_digit = a.reverse
               .drop(1)
               .map!.with_index { |x, i| x << (i + 1) }
               .sum % 11 % 10

puts "valid digit: #{valid_digit}"  # valid digit: 5
puts "last digit: #{a.pop}"         # last digit: 5

# the problem starts here
puts valid_digit != a.pop           # true ???  It should be 5!=5 -> false 
puts valid_digit - a.pop            # 3    ???  It should be zero!
Run Code Online (Sandbox Code Playgroud)

ruby

2
推荐指数
1
解决办法
64
查看次数

标签 统计

ruby ×1