What is the python for Java's BigDecimal?

Niklas R. picture Niklas R. · Jun 8, 2013 · Viewed 10.4k times · Source

In Java, when we program money it is recommended to use the class BigDecimal for money. Is there something similar in python? I would like something object-oriented that can have a currency and an exchange rate, has that been done?

I store money as integers of cents (I think) and multiply with 100 to get dollars but I also have foreign currency so listing listing ordered by price becomes inconvenient when articles have different currencies and even are listed as price per hour or per item. So ideally I would like a class for money in python that has exchange rate, currency and what type of pricing it is, if the pricing is per hour or per item.

So I suppose I'm looking for a priceclass and not a moneyclass, is there such a thing already? The gae I'm programming at doesn't have decimal data type so I can use an integer representing just the fraction or invent something like an own decimal representation where I implement it.

Answer

NINCOMPOOP picture NINCOMPOOP · Jun 8, 2013

The java.math.BigDecimal in Java's equivalent is decimal.Decimal in Python. You can even go through the documentation for more. mpmath is a pure-Python library for multi-precision floating-point arithmetic.