Decimal - multi-precision decimal arithmetic library

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.

Webpages

Requirements

Ruby 1.9.3 / 2.0.0 / 2.1.x / 2.2.x / 2.3.x

Install

With rubygems,

sudo gem install decimal

or to build by yourself,

ruby extconf.rb
make
sudo make install

Read INSTALL for less details.

Examples

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)

License

Ruby's. See COPYING and BSDL for more details.

Author

Tadashi Saito