Skip to main content

A package that helps you format numbers for engineering, scientific, and UI applications.

Project description

numformat

Numformat is a library that helps you easily format number-like objects (int, float, decimal.Decimal, str) in a way that is consistent with scientific and engineering practices.

It has options to convert number-like objects to strings with different notations while allowing control over Significant Figures, Precision, and output string length.

Usage examples:

Importing the package:

import numformat as nf

Formatting to scientific and engineering notations:

# Convert to scientific notation
nf.sciformat(103000000)
>> '1.03e+08'

# Convert to engineering notation
nf.enggformat("103000000")
>> '103E+6'

Using autoformat:

# Auto-format with default options
nf.autoformat(1030000.0)
>> '1030000.0'

nf.autoformat(103000000.0)
>> '1.03e+08'

Using autoformat with the max_sig_figs argument:

# Auto-format and use a maximum of 5 significant figures
nf.autoformat(103000.000, max_sig_figs=5)
>> '103000'

# Auto-format and use a maximum of 2 significant figures
nf.autoformat("10300.00", max_sig_figs=2)
>> '10000'

Using autoformat with the max_length argument:

# Auto-format to a string that has a maximum length of 6 characters
nf.autoformat(103000000, max_length=6)
>> '1e+08'

Using autoformat with the preserve_sig_figs argument:

# Auto-format to a string that has a maximum length of 8 characters
nf.autoformat(103100000, max_length=8, preserve_sig_figs=False)
>> '1.03e+08'

# Auto-format to a string that has a maximum length of 8 characters but also preserve all significant figures.
nf.autoformat(103100000, max_length=8, preserve_sig_figs=True)
>> '103.1E+6'

Controlling the format type in autoformat:

# Auto-format to a string with a maximum length of 6 characters but don't allow scientific notation
nf.autoformat(103000000, max_length=6, allow_scientific_notation=False)
>> '103E+6'

# Auto-format to a string with a maximum length of 6 characters but don't allow scientific or engineering notation. 
# Conditions cannot be met, therefore, it returns the number in standard notation.
nf.autoformat(103000000, max_length=6, allow_scientific_notation=False, allow_engineering_notation=False)
>> '103000000'

Raising an error if formatting fails:

# Auto-format to a string with a maximum length of 6 characters but don't allow scientific or engineering notation. 
# Conditions cannot be met, and strict = True, therefore, returns an error.
nf.autoformat(103000000, max_length=6, allow_scientific_notation=False, allow_engineering_notation=False, strict=True)
>> ValueError: Could not represent the input within 6 characters.

Project details


Download files

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

Source Distribution

numformat-0.0.3.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

numformat-0.0.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file numformat-0.0.3.tar.gz.

File metadata

  • Download URL: numformat-0.0.3.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.9.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

File hashes

Hashes for numformat-0.0.3.tar.gz
Algorithm Hash digest
SHA256 4417c7c8d6cfcb8e286a99ca3ebb47df5c35054d522d6dbf1295bd376b9e02bc
MD5 ed181570119f3b76a054133891b1a783
BLAKE2b-256 b403ba05fcd4cfa66fba254059cee38a9bb3cf8b36426da2f6beb2ccf30cb4df

See more details on using hashes here.

File details

Details for the file numformat-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: numformat-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.9.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

File hashes

Hashes for numformat-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8d74ae84c01fbe267bd11ed413cdd04fd52edb1942aa4f83d8d1a05a441239c7
MD5 a079532603d016cc6bb2b3ffb9a838ab
BLAKE2b-256 38571e33b7a7e9121bef40406f438fe06b5cfd987f0f79b8c37221efbe91dec6

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