我的 Python 代码对我(或者我的数字)做了一些奇怪的事情:
一)
float(poverb.tangibles[1])*1000
1038277000.0
二)
float(poverb.tangibles[1]*1000)
inf
导致发现:
long(poverb.tangibles[1]*1000)
产生了我见过的最大数字。
呃,我没有阅读整个 Python 教程或它的文档。我是否遗漏了一些有关 float
工作原理的关键信息?
编辑:
>>> poverb.tangibles[1]
u'1038277'
最佳答案
您可能错过了关于乘法如何作用于字符串的文档。您的有形 Assets
列表包含字符串。 tangibles[1]
是一个字符串。 tangibles[1]*1000
是重复 1000 次的字符串。对该字符串调用 float
或 long
会将其解释为数字,从而创建一个巨大的数字。如果您改为执行 float(tangibles[1])
,您只会得到实际数字,而不是重复 1000 次的数字。
您所看到的与本例中发生的一样:
>>> x = '1'
>>> x
'1'
>>> x*10
'1111111111'
>>> float(x)
1.0
>>> float(x*10)
1111111111.0
关于python - 为什么在使用 Python 的 "float"函数时这些结果如此不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11897260/