RubyMoney
A Ruby Library for dealing with money and currency conversion
...It is designed around the principle that financial calculations must avoid floating point errors, and therefore represents values internally as integers in the smallest currency unit, such as cents. The library introduces a Money class that encapsulates both the numeric value and the associated currency, ensuring that operations are always context-aware and accurate. It also includes a Money::Currency class that stores metadata such as currency codes, symbols, and formatting rules, enabling consistent handling of international currencies. The library supports arithmetic operations, comparisons, and currency conversion through configurable exchange rate providers, making it suitable for both simple and complex financial systems.