Python的math模块包含诸如floor&的便捷函数ceil。这些函数采用浮点数,并返回在其之下或之上的最接近的整数。但是,这些函数将答案作为浮点数返回。例如:
floor
ceil
import math f=math.floor(2.3)
现在f返回:
f
2.0
从该浮点数中获取整数而不冒取舍入错误风险的最安全方法是什么(例如,如果浮点数等于1.99999),或者我应该完全使用另一个函数?
可以用浮点数表示的所有整数均具有精确的表示形式。这样您就可以安全地使用int结果了。仅当您尝试使用非2的幂的分母来表示有理数时,才会出现不精确的表示。
int
这项工作一点都不微不足道!IEEE浮点表示法的一个属性是int∘floor=⌊⋅⌋,如果所讨论的数字的大小足够小,但是int(floor(2.3))可能为1的情况下,可能会有不同的表示法。
要引用维基百科,
绝对值小于或等于2 24的任何整数都可以用单精度格式准确表示,绝对值小于或等于2 53的任何整数都可以用双精度格式准确表示。