utilities.formatting

Formatting functions

significant


def significant(
    x, n:int=1
):
significant(.039)
0.04

significant_digits


def significant_digits(
    x, n:int=1
):
significant(.099999, 2)
0.1
for i in range(1, 5): print(significant_digits(.0999, i))
1
10
999
9990
significant_digits(.099999, 2)
10
significant_digits(.039, 2)
39

prefix_format


def prefix_format(
    x, precision:int=3
):
prefix_format(1.2345678, .03)
'1.23(3)'
prefix_format(12.345678, .03)
'0.01235(3)k'
prefix_format(123.45678, .03)
'0.12346(3)k'
prefix_format(1234.5678, .03)
'1.23457(3)k'
prefix_format(1.2345678, .09)
'1.23(9)'
prefix_format(1.2345678, .099)
'1.2(1)'
prefix_format(.0012345678, .09)
'(1.2±90)m'
prefix_format(.0012345678, .099)
'(1.2±100)m'
prefix_format(.0012345678, .001)
'1(1)m'
prefix_format(123.45678, .099)
'0.1235(1)k'
prefix_format(12345.678, .09)
'0.01234568(9)M'
prefix_format(12345.678, .099)
'0.0123457(1)M'
prefix_format(12345.678, 0)
'0.0M'
prefix_format(12345.678, 2)
'0.012M'
for i in range(-9, 10): print(prefix_format(1.2345678 * 10**i ))
1.23n
0.0123µ
0.123µ
1.23µ
0.0123m
0.123m
1.23m
0.0123
0.123
1.23
0.0123k
0.123k
1.23k
0.0123M
0.123M
1.23M
0.0123G
0.123G
1.23G