Exact rationals are represented as pairs of exact integers. Inexact real numbers are represented as native numbers. The implementation is correct.
big.js is only 2.7KB minified and gzipped in size. Making it a pretty small library and fast to load.
bignumber.js, doesn't have any dependencies. This doesn't make it dependent on any other library, avoiding having to reimplement any features in case one of the dependencies gets abandoned for example.