Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему решение алгоритма арифметически неточно?

Выполнив одно из заданий курса по Питону, заметил, что одно из вычисленных алгоритмом значений имеет как-то уж слишком много знаков после запятой. Проверил ответ на калькуляторе - действительно, есть расхождение. Почему так?
ПрограммированиеPython+1
Денис Голубев
  ·   · 3,6 K
🍀 Естествоиспытатель   · 28 сент 2021  · shymanovsky.mooo.com
Вычисление арифметических действий в компьютерах - целая наука, довольно сложная. Там используются специальные низкоуровневые алгоритмы, причем такие, которые смогли бы работать и с целыми числами, и с дробными, и с отрицательными и с иррациональными. Иногда конечный результат вообще точно не вычисляется, например корень из трех. Будет бесконечная дробь. Ну, а поскольку такое записать невозможно, алгоритм бросает вычисления после достижения какой-то точности. Поэтому и корень из 4-х он может записать, как "1.9999999999" вместо "2". В простых случаях компьютер может округлить результат, но не всегда. Он же не понимает, это простой случай или сложный.
Поэтому, если вы пишете вычислительную программу с дробными числами, то лучше самому округлять результат до нужной вам точности.
В вашем случае калькулятор округлил до 4 знаков после запятой, а питон до... много там.
Вообще говоря, не составило бы труда дополнить алгоритм вычисления шагом, который бы определял, до какого разряда... Читать дальше
Лучший
Школа программирования для детей "КИД КОД" Препода...  · 28 сент 2021  · kidkod.ru
Математика взаимодействия с числами с плавающей запятой реализована разными способами в базовом интерпретаторе пайтона и калькуляторе в windows. Если вам нужны точные вычисления используйте модуль decimal
Обучаем детей с 7 лет программированию и компьютерной грамотности.Перейти на kidkod.ru
Просто странно, что это доп. модуль, а не часть базового функционала
старший разработчик в pseven.io  · 29 окт 2021
Эта проблема существует не только в Питоне, но в других языках, где арифметические операции производятся над числами в двоичном формате (а это подавляющее большинство). Многие десятичные дроби нельзя точно перевести в двоичный... Читать далее
Что-то осталось непонятно? Спроси в нашей группе в Телеграме!Перейти на t.me/jstsmentor