为什么在使用Python的“float”函数时这些结果如此不同?

2024-10-02 12:38:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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'

Tags: 代码编辑数量doc教程数字floatlong
1条回答
网友
1楼 · 发布于 2024-10-02 12:38:16

你可能错过的是关于乘法如何在字符串上工作的文档。您的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

相关问题 更多 >

    热门问题