Python 中的科学计数法

Manav Narula 2023年1月30日
  1. 在 Python 中使用 format() 函数来实现科学计数法
  2. 在 Python 中使用 fstrings 来表示科学记数法中的值
  3. 使用 numpy.format_float_scientific() 函数来表示科学符号中的数值
Python 中的科学计数法

科学记号用于以紧凑和易懂的方式表示非常大或小的数字。这种符号也用于编程;例如,6000000 可以表示为 6E+6。同样,0.000006 也可以表示为 6E-6

在本教程中,我们将讨论如何在 Python 中使用这种科学计数法。

在 Python 中使用 format() 函数来实现科学计数法

格式函数用于将字符串按特定格式进行格式化。我们可以使用这个函数将大的或小的浮动值转换为各自的指数格式,如下图所示。

no1 = float(5800000.00000)
no2 = float(0.0000058)
print(format(no1, ".1E"))
print(format(no2, ".1E"))

输出:

5.8E+06
5.8E-06

这里 .1E 是指定的格式模式。E 表示用科学记数法打印数值,.1 指定小数点后必须有一个数字。

在 Python 中使用 fstrings 来表示科学记数法中的值

在 Python 3.6 及以上版本中,我们可以使用 fstrings 来格式化字符串。这种方法被认为更精确,更不容易出错。与传统的 format() 函数相比,它提高了代码的可读性。fstrings 可以帮助表示,如下所示。

no1 = float(5800000.00000)
no2 = float(0.0000058)
print(f"{no1:.1E}")
print(f"{no2:.1E}")

输出:

5.8E+06
5.8E-06

请注意,格式模式与上述方法相同。

使用 numpy.format_float_scientific() 函数来表示科学符号中的数值

Python 中的 NumPy 模块有一个函数 format_float_scientific(),它可以用来将一个浮点数格式化为其科学符号。

我们可以使用 precision 参数来指定总的小数位数,使用 exp_digits 来告诉指数符号中需要多少位数。其他可用的参数还有 signuniquetrim,这些参数提供了更多的自定义功能。

该函数返回的最终结果是一个字符串。

import numpy as np

no1 = float(5800000.00000)
no2 = float(0.0000058)

print(np.format_float_scientific(no1, precision=1, exp_digits=3))
print(np.format_float_scientific(no2, precision=2, exp_digits=3))

输出:

5.8e+006
5.8e-006
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python String