18.05 Нюансы работы с числами с плавающей запятой
https://drive.google.com/file/d/1HhERUjveh7bMUShDdJEC05M1HLGEvSFt/view?usp=drive_link Формат с плавающей запятой: мантисса, экспонента Большие целые значения без fixed печатаются в научном формате Типы данных с плавающей запятой: double, long double, float, __float128, decimal в Python и C# Извлечение квадратного корня из целых чисел: - sqrt(10^18 - 1) == 10^9 - sqrtl - math.isqrt в Python Корректное использование pow для подсчета a^b: round(powl(a, b)) 1e18 + 1 == 1e18; 1e18L + 1 != 1e18 1\n * n != 1, т.к. хранится ограниченное число знаков у бесконечной периодической дроби 0.1 + ... + 0.1 != 1, т.к. числа хранятся в двоичной системе счисления Недопустимость использования чисел с плавающей запятой хранения для хранения сумм с копейками При возможности лучше не пользоваться числами с плавающей запятой. Примеры: - сравнение длин отрезков с концами в целых координатах - класс для рациональных дробей Работа с eps: - сравнения - округления в фиксированную сторону - sqrt, asin, acos Ограничения на eps сверху и снизу. Расстояние между двумя дробями с ограничением на величину знаменателя
Название:
18.05 Нюансы работы с числами с плавающей запятой
Категория:
Разное