• Tim Peters's avatar
    SF bug 705836: struct.pack of floats in non-native endian order · d50ade68
    Tim Peters yazdı
    pack_float, pack_double, save_float:  All the routines for creating
    IEEE-format packed representations of floats and doubles simply ignored
    that rounding can (in rare cases) propagate out of a long string of
    1 bits.  At worst, the end-off carry can (by mistake) interfere with
    the exponent value, and then unpacking yields a result wrong by a factor
    of 2.  In less severe cases, it can end up losing more low-order bits
    than intended, or fail to catch overflow *caused* by rounding.
    
    Bugfix candidate, but I already backported this to 2.2.
    
    In 2.3, this code remains in severe need of refactoring.
    d50ade68
test_struct.py 15 KB