在 Python 和 MySQL 中存储科学记数法的最有效方式

Most efficient way to store scientific notation in Python and MySQL

所以我想存储很多数字,我想优化存储 space。

生成的很多数字都具有相当高的精度浮点数,因此: 0.000000213213 或 323224.23125523 - 长、高内存浮动。

我想找出最好的方法,在 Python 和 MySQL(MariaDB) 中 - 以最小数据大小存储数字。

所以 2.132e-7 或 3.232e5,只是为了尽可能少地存储它,我可以指定小数范围 - 但删除 n 位小数后的信息。

我假设存储为 DOUBLE 是可行的方法,但我可以截断精度并节省 space 吗?

我正在考虑在 Python 中进行一些数字格式化/截断,然后仅作为 DOUBLE 进行正常存储 - 但实际上会保存任何 space 而不是立即存储双精度附有 N 位小数。

谢谢!

所有 python 浮点数具有相同的精度并占用相同的存储量。如果你想减少整体存储 numpy 数组应该这样做。

另一方面,如果您试图通过 json 或 xml 最小化表示传输的数字表示,您可以使用 f-strings。

>>> from math import pi
>>> pi
3.141592653589793

>>> f'{pi:3.2}.'
 '3.1.'
>>> bigpi = pi*10e+100
>>> bigpi
 3.141592653589793e+101

>>> f'{bigpi:3.2}'
 '3.1e+101'