При использовании python, 2.7.17 или 3.6.9, возникает странное поведение при использовании значения «1e11». Для обеих версий:
>>> 1.0e-11*1.0e11
0.9999999999999999
>>> 1.0e-10*1.0e10
1.0
>>> 1.0e-12*1.0e12
1.0
>>> 1.0e-13*1.0e13
1.0
etc.
>>> 1.0-(1.0e-11*1.0e11)
1.1102230246251565e-16
В то время как для всех остальных показателей [РЕДАКТИРОВАТЬ: до 20] результат правильно равен 0,0. Очевидно, что есть некоторые проблемы с точностью с плавающей запятой, но почему это не согласовано между показателями 10, 11 и 12. Что здесь происходит?