对于相对简单的浮点数,数值精度足以准确表示它们。例如,17.5等于17.5。
对于更复杂的浮点数,例如
17.4999999999999982236431605997495353221893310546874 = 17.499999999999996447286321199499070644378662109375
17.4999999999999982236431605997495353221893310546875 = 17.5
使用as_integer_ratio()方法得到第一个数字的比例为(4925812092436479, 281474976710656)
,因为(4925812092436479*2+1)/(2*281474976710656)
等于第二个数字,因此可以明显地看出大于或等于17.5和小于17.5之间的分割点是1/(2*281474976710656)。
Python标准是否保证特定的浮点数会被分到特定的区间?还是这取决于具体实现?如果有保证,它是如何确定的?
对于上述问题,我使用的是Python 3.5.6版本,但如果存在一般答案来适用于Python 3.x。