我记得 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的选项。有帮助吗? 谢谢。
答案 0 :(得分:1)
您可以尝试https://github.com/marcandre/backports,声称提供“Ruby的最新功能向后移植到旧版本”。我一眼就看不出有关BigDecimal的任何内容,但是谁知道内部可能使用的内容。我以前用它来制作阵列,它至少值得一试。