Decimal is (yet another) multi-precision decimal arithmetic library, which aims to surpass BigDecimal. It provides simple, compact, fast, precise, stable and easy-to-use solution.
Ruby 1.9.3 / 2.0.0 / 2.1.x / 2.2.x / 2.3.x
With rubygems,
sudo gem install decimal
or to build by yourself,
ruby extconf.rb make sudo make install
Read INSTALL for less details.
Use like Float with few exceptions including Decimal#divide.
require 'decimal' N = 3 # larger N may take huge time and more inaccurate result pi = 0 i = 0 loop do term = (-1) ** i * Decimal(4).divide(2 * i + 1, N + 2, :down) break if term.zero? pi += term i += 1 end puts pi.round(N)
Ruby’s. See COPYING and BSDL for more details.