Surprise with special floating point values

Discussion in 'Python' started by prouleau001@gmail.com, Nov 29, 2006.

  1. Guest

    Hi all,

    While trying to use simplejson under Python 2.4.3 I have been
    investigating the handling of special floating point values and found
    that both Python 2.4 and 2.5 return False when comparing a NaN with
    itself. Although surprising, I imagine it could also be correct since
    NaN is not a number. But is it correct?

    Notice the result of comparing c with itself in the following Python
    2.5 session (it works the same on Python 2.4.3) under Win32::

    Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
    (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = 1e300 * 1e300
    >>> a

    1.#INF
    >>> b = 1e66666
    >>> b

    1.#INF
    >>> a == b

    True
    >>> c = a - a
    >>> c

    -1.#IND
    >>> d = b - b
    >>> d

    -1.#IND
    >>> c == d

    False
    >>> c == c

    False
    >>> b == b

    True
    >>> a == a

    True
    >>> a is a

    True
    >>> b is b

    True
    >>> c is c

    True
    >>> d is d

    True
    >>>


    Thanks,

    --
    Pierre Rouleau
     
    , Nov 29, 2006
    #1
    1. Advertising

  2. Guest

    On Nov 29, 12:53 pm, wrote:
    > Hi all,
    >
    > While trying to use simplejson under Python 2.4.3 I have been
    > investigating the handling of special floating point values and found
    > that both Python 2.4 and 2.5 return False when comparing a NaN with
    > itself. Although surprising, I imagine it could also be correct since
    > NaN is not a number. But is it correct?


    And of course it is correct... As NaN does not compare with itself in
    floating point: http://en.wikipedia.org/wiki/NaN

    Should have read it earlier...


    > --
    > Pierre Rouleau
     
    , Nov 29, 2006
    #2
    1. Advertising

  3. wrote:

    > While trying to use simplejson under Python 2.4.3 I have been
    > investigating the handling of special floating point values


    note that JSON doesn't support non-numeric floating point values, as can
    be seen by the "number" syntax description on this page:

    http://www.json.org/

    (and as I pointed out in another thread on this topic, Python relies on
    the C library for serialization of floats, so non-numeric floating point
    values aren't portable between Python versions either).

    </F>
     
    Fredrik Lundh, Nov 29, 2006
    #3
  4. Guest

    On Nov 29, 1:11 pm, Fredrik Lundh <> wrote:
    > wrote:
    > > While trying to use simplejson under Python 2.4.3 I have been
    > > investigating the handling of special floating point valuesnote that JSON doesn't support non-numeric floating point values, as can

    > be seen by the "number" syntax description on this page:
    >
    > http://www.json.org/
    >
    > (and as I pointed out in another thread on this topic, Python relies on
    > the C library for serialization of floats, so non-numeric floating point
    > values aren't portable between Python versions either).
    >
    > </F>


    That's true, but I ran into a problem with simplejson under Python
    2.4.3 on Win32, where it fails to serialize 1.0 properly (and I
    reported the problem to its author, and the fact that it works fine
    under Python 2.5). There is another thread (Inconsistency producing
    constant for float "infinity") that talks about differences between
    Python 2.5 and earlier versions regarding treatment of non-numeric
    floating point values. So, while investigating the simplejson problem,
    I though I had found a problem with the handling of NaN (which
    obviously is not the case).

    - Pierre R.
     
    , Nov 29, 2006
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. H aka N
    Replies:
    15
    Views:
    15,689
    Ben Jones
    Mar 2, 2006
  2. Motaz Saad
    Replies:
    7
    Views:
    6,503
  3. Robert Latest

    Equality of floating-point numbers (special case)

    Robert Latest, Apr 19, 2006, in forum: C Programming
    Replies:
    14
    Views:
    496
    P.J. Plauger
    Apr 20, 2006
  4. Saraswati lakki
    Replies:
    0
    Views:
    1,356
    Saraswati lakki
    Jan 6, 2012
  5. teeshift
    Replies:
    2
    Views:
    268
    Chris Pearl
    Dec 1, 2006
Loading...

Share This Page