Существует ли plugin под flake8 для контроля литералов с плавающей точкой?
Интересует выдача предупреждений на литералы, которые не имеют точного представления, например 0.1
. А, к примеру, литерал: 0.25
- "хороший".
Особенно при работе с пакетами numpy
, gmpy2
и др., приходится следить за ошибками вида (пример для Intel/AMD/Power/...):
import numpy as np
good = np.float128('0.3')
fail = np.float128(0.3)
print((good - fail)/np.finfo(fail).eps)
Для расширенной точности Intel/AMD/Motorola получим:
102.5
Для честных IEEE bynary128 бит:
57646075230342349.0
Т.е. и при работе с float
литерал 0.3
имеет ошибку 0.5 ULP, но для np.longdouble()
это уже больше 100 ULP.