跳转到主要内容

前缀替代数值库

项目描述

Documentation Status GitHub Actions Status Coverage Status
PyPI Package latest release Supported versions Supported implementations

概述

Prefixed提供了内置float的替代实现,支持带有SI (十进制)IEC (二进制)前缀的格式化输出。

>>> from prefixed import Float

>>> f'{Float(3250):.2h}'
'3.25k'

>>> '{:.2h}s'.format(Float(.00001534))
'15.34μs'

>>> '{:.2k}B'.format(Float(42467328))
'40.50MiB'

>>> f'{Float(2048):.2m}B'
'2.00KB'

由于prefixed.Float继承自内置的float,在大多数情况下它的行为完全相同。

当与其他实数类型(floatint)执行数学运算时,结果将是prefixed.Float实例。

表示类型

支持以下用于 f-string 和 format() 的附加表示类型:'h'、'H'、'k'、'K'、'm' 和 'M'。

类型

含义

'h'

SI 格式。输出最接近的 SI 前缀的数字。(k、M、G 等)

'H'

与 'h' 相同,但精度指示有效数字。

'k'

IEC 格式。输出最接近的 IEC 前缀的数字。(Ki、Mi、Gi 等)

'K'

与 'k' 相同,但精度指示有效数字。

'm'

短 IEC 格式。与 'k' 相同,但只使用一个字符。(K、M、G 等)

'M'

与 'm' 相同,但精度指示有效数字。

'j'

别名 'k' - 已弃用

'J'

别名 'm' - 已弃用

字符串初始化

从字符串初始化时,将尊重 SI 和 IEC 前缀

>>> Float('2k')
Float(2000.0)

>>> Float('2Ki')
Float(2048.0)

附加标志

还有一个附加的格式标志 '!',在前面添加一个空格。

>>> f'{Float(3250):!.2h}'
'3.25 k'

有效数字

当使用 'H'、'K' 或 'M' 表示类型时,精度被视为要包含的有效数字的数量。对于最后一位将执行标准舍入。

>>> f'{Float(1246):.3h}'
'1.246k'

>>> f'{Float(1246):.3H}'
'1.25k'

默认情况下,将删除尾部零。

>>> f'{Float(1000):.3H}'
'1k'

为了保留尾部零,请包含 '#' 标志。

>>> f'{Float(1000):#.3H}'
'1.00k'

可调整的阈值

可以指定一个额外的字段,margin,通过给定的百分比降低或提高每个前缀的阈值。margin 在精度之前指定,语法为 %[-]digit+

>>> f'{Float(950):.2h}'
'950.00'

>>> f'{Float(950):%-5.2h}'
'0.95k'

>>> f'{Float(1000):%5.2h}'
'1000.00'

>>> f'{Float(1050):%5.2h}'
'1.05k'

支持的单位

SI(十进制)单位

单位

名称

基数

Q

Quetta

1030

R

Ronna

1027

Y

Yotta

1024

Z

Zetta

1021

E

Exa

1018

P

Peta

1015

T

Tera

1012

G

Giga

109

M

Mega

106

k

Kilo

103

m

Milli

10-3

μ

Micro

10-6

n

Nano

10-9

p

Pico

10-12

f

Femto

10-15

a

Atto

10-18

z

Zepto

10-21

y

Yocto

10-24

r

Ronto

10-27

q

Quecto

10-30

IEC(二进制)单位

单位

名称

基数

Y

Yobi

280

Z

Zebi

270

E

Exbi

260

P

Pedi

250

T

Tebi

240

G

Gibi

230

M

Mebi

220

K

Kibi

210

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。

源分布

prefixed-0.9.0.tar.gz (99.3 kB 查看哈希值)

上传时间 源代码

构建分发

prefixed-0.9.0-py2.py3-none-any.whl (13.5 kB 查看哈希值)

上传时间 Python 2 Python 3

支持