Mark Dickinson <dicki...@gmail.com> added the comment:
To be clear: the following is flawed as an accuracy test, because the *multiplication* by 1e9 introduces additional error. # int/int: int.__truediv__(int) >>> abs(t - int(t/10**9 * 1e9)) 172 Try this instead, which uses the Fractions module to get the exact error. (The error is converted to a float before printing, for convenience, to show the approximate size of the errors.) >>> from fractions import Fraction as F >>> exact = F(t, 10**9) >>> int_int = t / 10**9 >>> float_float = t / 1e9 >>> int_int_error = F(int_int) - exact >>> float_float_error = F(float_float) - exact >>> print(float(int_int_error)) 8.85650634765625e-08 >>> print(float(float_float_error)) -1.49853515625e-07 ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue39484> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com