我记得Matz说过的话:Ruby 1.8 很快就会死掉。但我别无选择。在这里,我使用的是 Ruby 1.8.7
。与更高版本的 Ruby 相比,Big Decimal 的行为有所不同。
例如:
ree-1.8.7-2011.12 :001 > require 'bigdecimal'
=> true
ree-1.8.7-2011.12 :002 > b=BigDecimal('0.0')
=> #<BigDecimal:9ce7148,'0.0',4(8)>
ree-1.8.7-2011.12 :003 > b
=> #<BigDecimal:9ce7148,'0.0',4(8)>
ree-1.8.7-2011.12 :004 > b==0
=> true
ree-1.8.7-2011.12 :005 > [b,b,0,0].uniq
=> [#<BigDecimal:9ce7148,'0.0',4(8)>, #<BigDecimal:9ce7148,'0.0',4(8)>] #Integer 0 is removed
ree-1.8.7-2011.12 :008 > [b,b,0,0].uniq.uniq
=> [#<BigDecimal:9ce7148,'0.0',4(8)>] #Applying two times uniq gives desired result for given array
有什么补丁可以解决这个问题吗?抱歉,我没有升级 Ruby 的选项。有什么帮助吗?谢谢你。