【发布时间】:2018-12-12 19:29:57
【问题描述】:
在 Ubuntu 18 上的 Python (3.6.7) 交互式 shell 中,两者都
>>> n = str(3.140000000000000124344978758017532527446746826171875)
>>> print(n)
和
>>> print(3.140000000000000124344978758017532527446746826171875)
产量3.14。而
>>> print('3.140000000000000124344978758017532527446746826171875')
收益3.140000000000000124344978758017532527446746826171875
这是为什么?
注意;我不是在问为什么浮点数会丢失精度,而是具体来说,为什么 str(n) 和 'n'(引号)的使用与 print() 的行为不同。
【问题讨论】:
-
很少有人愿意在
print(3.14)看到3.140000000000000124344978758017532527446746826171875。 -
前两个是将数字转换为字符串,但第三个不涉及任何转换,只是按原样打印字符串
-
“为什么使用 str(n) 和 'n' (引号) 的行为不同” - 它们的行为不应该相同。
str不应该等同于在表达式周围加上引号。举个超级简单的例子,看看你写的字——你不会期望str(n)是'n',除非你指定了n='n',对吗?
标签: python