如何阻止Rspec在eq()之类的比较中舍入fixNum?
红宝石:
def power(base, exponent)
base**exponent
endRspec:
Failure/Error: expect(power(5,-5)).to eq(1/3125)
expected: 0
got: (1/3125)但通过了
expect(power(5,-5)).to eq(0.00032)发布于 2016-01-13 03:05:49
这不是RSpec的四舍五入,它只是一个简单的Ruby假设,既然您要除以两个Fixnum,那么您需要返回一个Fixnum。
如果您正在潜水的任何数字是Float或Rational,则您的除法将生成相应的类,并且它将通过您的等式检查。
> power(5, -5) == (1/3125)
=> false
> power(5, -5).class
=> Rational
> (1/3125).class
=> Fixnum
> 0.00032.class
=> Float
> (1/3125)
=> 0
> (1.0/3125)
=> 0.00032
> power(5, -5) == (1.0/3125)
=> truehttps://stackoverflow.com/questions/34757626
复制相似问题