以下是在 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() 相同。
