Skip to main content

Python arithmetics for very long numbers.

Project description

Arithmetics is a Python library that allows adding, subtracting and multiplying VERY long numbers.

Python (like many programming languages) is bad at math. It can’t represent very large numbers in the memory. It rounds up the decimal precision as if it doesn’t matter. For instance, Python calculates 4376531231238346534654738521343658334865834.8739879827913213 times -123380950827290485196703213.8735298304756982704423 as -5.399805846355196e+68, which is only a sad approximation. According to Python, 1 - 0.00000000000000001 is still equal to 1.0, which is obviously wrong and can lead to serious bugs.

Arithmetics Library can add, subtract or multiply numbers AT ANY LENGTH with the exact precision. It doesn’t suffer from integer overflow or floating point rounding problems because it takes numbers in string format. It can work with positive, negative and decimal numbers. Analytics Library can calculate the above multiplication precisely: -539980584635519517644606174820023097370977572779217236866897631496501.40991196066825563084376519821275241099.

Usage

arithmetics.calculate(...) takes in 1 arithmetic operator (+, -, or *) and 2 numbers in string format, and returns the result as a string:

from arithmetics import arithmetics

arithmetics.calculate(arithmetics.OPERAND_ADD, '123', '-456.789')
# returns '-333.789'
arithmetics.calculate(arithmetics.OPERAND_SUBTRACT, '-1.0000000000000000000000000000000000001', '0.0000000000000000000000000000000000002')
# returns '-0.9999999999999999999999999999999999999'
arithmetics.calculate(arithmetics.OPERAND_MULTIPLY, '31352725584.2464', '-4389.999945479936')
# returns '-137638463605489.0905724488802304'

You may need this library if…

  • You do math with very large numbers (e.g. astrophysics)

  • You don’t want to lose decimal precision (e.g. financial applications)

Happy coding!

Ozan Eren Bilgen

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

arithmetics-0.2.0-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file arithmetics-0.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: arithmetics-0.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for arithmetics-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f675c7ddd5436a302eb488ffc914a013c4b0709e9c4ca0e70cd368eb086a551e
MD5 13481d54527d1355543adeacb078fac0
BLAKE2b-256 e67800c6e178b45d5b429994fabfe85b600cb9e93723bb38947c900b7456526e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page