Skip to main content
 首页 » 编程设计

python之Python如何判断一个数字是否用科学计数法表示

2025年05月04日16qq78292959

以下是在 Python 控制台中输入的一些数字,以及结果表示:

>>> 1 
1 
>>> 1.234 
1.234 
>>> 1.234e5 
123400.0 
>>> 1.234e15 
1234000000000000.0 
>>> 1.234e25 
1.234e+25 

... 以下是打印相同数字时发生的情况:

>>> print 1 
1 
>>> print 1.234 
1.234 
>>> print 1.234e5 
123400.0 
>>> print 1.234e15 
1.234e+15  # different! 
>>> print 1.234e25 
1.234e+25 

Python 如何决定使用哪种表示形式?为什么某些数字使用和不使用 print 会有所不同?

请您参考如下方法:

在 Python 中只有 float 使用科学记数法表示;整数始终按原样表示。

float 在 Python 2.7 中的表示方式取决于它是否使用 repr() 表示。 (例如,直接在控制台中或作为集合的成员)或 str() (例如,使用 print 语句)。

使用 repr(),如果 float 小于 0.0001 (1e-4) 或至少 1e16:

>>> 1e-4 
0.0001 
>>> 0.00009999 
9.999e-05 
>>> 1e16-2 
9999999999999998.0 
>>> 10000000000000000.0 
1e+16 

使用str(),上限约为1e11:

>>> print 1e11-1 
99999999999.0 
>>> print 100000000000.0 
1e+11 

注意:在 Python 3 中,str() 现在表示 float 的方式与 repr() 相同。