Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My impression was that the article is about intermediate rounding between calculation steps, rather than about printing a number to the screen.


As far as (64-bit binary) floats are concerned, 2.675 and 2.6749999999999998 are in fact the same thing:

    $ python3
    Python 3.7.3 (default, Jun 16 2019, 16:10:46) 
    [Clang 8.0.0 (clang-800.0.42.1)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 2.675 == 2.6749999999999998
    True
So IF you have enough excess precision at every step, and IF you do the rounding right at each step, then you can get the same results using binary fractions as with decimal.

Of course, correct rounding is still an issue when using a decimal type, since round(sum(n for n in ns)) ≠ sum(round(n) for n in ns).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: