当您取一个小数的 sqrt 但指定非常高的精度时,BigDecimal 发生了一些奇怪的事情......
当我说奇怪时,我的意思是 36 的 sqrt 是 5。
谁能解释这里发生了什么或者这是一个错误......
require 'bigdecimal'
require 'bigdecimal/util'
@d = BigDecimal.new(36)
puts @d.sqrt(250).to_i
$ ruby1.9 test.rb
5
$ ruby1.9 -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10]
$ uname -a
Darwin jack.bidcactus.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011;