` - ':没有将Fixnum隐式转换为Array

时间:2015-07-25 13:27:47

标签: arrays ruby implicit-conversion

用户在以逗号分隔的列表中输入硬币,然后在他们想要的更改量之前放置一个冒号。我们有硬币:£1(100p),50p,20p,10p,5p,2p和1p,我们希望给客户57p。数据输入如下:100,50,20,10,5,2,1:57。用最简单的方式给用户更改。

这是我的代码:

user_input = gets
i = 0
change_needed = 67  
coins = [50,5,20,1,5]
check_input = user_input.length
coins = user_input.split(',')
change_needed = user_input.split(':')
coins_length = coins.length
coins.map!(&:to_i)
coins = coins.sort {|a,b| b <=> a}
if check_input < 100 then
  while change_needed != 0 do
    if change_needed - coins[i] then
      change_needed -= coins[i]
    else
      i += 1
      puts "#{i} is the number in the coin array"
    end
  end
else
end

我在第if change_needed - coins[i] then行上收到以下错误消息:

  

rb:17:在` - '中:没有将Fixnum隐式转换为数组(TypeError)

我不明白这个错误信息。这似乎是一个简单的修复,但我无法掌握我需要用我的代码来修复它。

1 个答案:

答案 0 :(得分:1)

FXMLLoader中,您将change_needed设置为数组,而不是设置为int。

尝试更换:

change_needed = user_input.split(':')

coins = user_input.split(',')
change_needed = user_input.split(':')