Как правильно сложить или вычесть используя поплавки?
Например, как выполнить:
2.4e-07 - 1e-8
, чтобы он возвращал 2.3e-7
вместо 2.2999999999999997e-07
.
Преобразование в int сначала приводит к неожиданным результатам, ниже возвращается 2.2e-07
:
int(2.4e-07 * 1e8 - 1) * 1e-8
Аналогично,
(2.4e-07 * 1e8 - 1) * 1e-8
возвращает 2.2999999999999997e-07
.
Как выполнить вычитание и сложение чисел с точностью до 8 десятичных знаков?
2.2999999999999997e-07
недостаточно, поскольку число используется для поиска в словаре, а ключ - 2.3e-7
. Это означает, что любое значение, отличное от 2.3e-7
, приводит к неправильному поиску.