Why `divmod(float('inf'), 1) == (float('nan'), float('nan'))`

Ian Kelly ian.g.kelly at gmail.com
Wed Sep 17 17:34:14 CEST 2014


On Wed, Sep 17, 2014 at 9:29 AM, Chris Angelico <rosuav at gmail.com> wrote:
> On Thu, Sep 18, 2014 at 1:16 AM, cool-RR <ram.rachum at gmail.com> wrote:
>> I didn't ask for the modulo, I agree it should remain NaN. I'm talking about the floor division.
>>
>
> Invariant: div*y + mod == x.
>
> If mod is NaN, there is no possible value for div that will make the
> invariant true, ergo it too has to be NaN.

That still doesn't make the invariant true. By this argument div could
be 42, and the invariant would hold equally well (i.e. not at all).



More information about the Python-list mailing list