Ruby得到未定义的方法`/' for Decimal(1596):Decimal类的Decimal(NoMethodError)

时间:2017-04-08 04:22:21

标签: ruby

我有一个功能,用于计算屏幕上射弹的位移。我在windows中的Ruby 2.2环境中编写它。现在我在linux上使用ruby 2.4运行相同的代码并收到此错误:

  

未定义的方法`/' for Decimal(1596):Decimal(NoMethodError)

我传递参数hpx,pxini等函数,如function Decimal.new(hpx,pxini...),其中每个都可以是float或int

require 'decimal'
#...
if tiro.hpx > tiro.pxini
                tiro.px += Std_Tiro_Speed * Math.cos(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
                tiro.py += Std_Tiro_Speed * Math.sin(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
            elsif tiro.hpx < tiro.pxini
                tiro.px -= Std_Tiro_Speed * Math.cos(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
                tiro.py -= Std_Tiro_Speed * Math.sin(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
            else
                if tiro.hpy > tiro.pyini
                    tiro.py += Std_Tiro_Speed
                else
                    tiro.py -= Std_Tiro_Speed
                end
            end

在Windows中运行时,代码正常运行并更新了屏幕上的x和y位置,现在,它在第一次调用中失败了。什么可能是错的?

0 个答案:

没有答案