我的python代码做了一些奇怪的事情(或者我的数字,更确切地说):
(一)

float(poverb.tangibles[1])*1000
1038277000.0

(二)
float(poverb.tangibles[1]*1000)
inf

结果发现:
long(poverb.tangibles[1]*1000)

产生了我见过的最大的数字。
呃,我没读过整个python教程,也没读过doc。我错过了一些关于float如何工作的重要信息了吗?
编辑:
>>> poverb.tangibles[1]
u'1038277'

最佳答案

您可能遗漏了有关乘法如何在字符串上工作的文档。您的tangibles列表包含字符串。tangibles[1]是字符串。tangibles[1]*1000字符串重复1000次。对该字符串调用floatlong会将其解释为一个数字,从而产生一个巨大的数字。如果改为float(tangibles[1]),则只得到实际的数字,而不是重复1000次的数字。
您所看到的与本例中的内容完全相同:

>>> x = '1'
>>> x
'1'
>>> x*10
'1111111111'
>>> float(x)
1.0
>>> float(x*10)
1111111111.0

10-07 22:34