首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:`int`和`flat`的组合

python:`int`和`flat`的组合
EN

Stack Overflow用户
提问于 2011-07-12 07:40:05
回答 4查看 191关注 0票数 1

作为其他计算的一部分,我注意到有时对整数输入先应用float(),然后应用int()函数。可以安全地假设:

代码语言:javascript
复制
int(float(x)) == x

如果x是整数?

为什么?(或者为什么不呢?)它有没有记录在案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-12 07:57:31

只要您有足够的位数来表示significant_digitsexponent,所有significant_digits * (2 ** exponent)形式的数字都有一个精确的浮点数表示形式。大多数平台使用IEEE754的double表示,Python使用平台的double表示。IEEE754双精度编码具有用于exponent的11位和用于significant digits的52位。只要你的数字符合这些界限,它们就会像预期的那样出现。

请参阅Python's docs on floating point representation和维基百科在floating points上的文章。

票数 3
EN

Stack Overflow用户

发布于 2011-07-12 07:43:45

如果x需要比双精度浮点数提供的精度更高的精度,则比较将失败。

代码语言:javascript
复制
>>> int(float(10**23))
99999999999999991611392L
票数 8
EN

Stack Overflow用户

发布于 2011-07-12 07:41:55

代码语言:javascript
复制
>>> x = 10**300
>>> int(float(x)) == x
False
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6657995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档