Точность и ошибки округления в Python | Функция round и тип данных float (дробные числа)

  Рет қаралды 13,169

INFORMLIC

INFORMLIC

Күн бұрын

Упоминаемые понятия: округление в Python, точность округления, ошибки в округлении, ошибки в программах, неверный результат, дробный тип данных float, числа с плавающей точкой, вещественные числа, неточность арифметических операций, банковское округление в Python, округление в сторону чётного, функция round, программирование на Python
===============
Сегодня мы поднимем вопрос неточности не только самого округления как такового, но и вообще потерю точности вычислений дробных чисел типа данных float, которая нередко оказывается большим удивлением для программиста, рано или поздно сталкивающегося с подобной проблемой.
Несмотря на то, что такая особенность Python может проявляться в особых случаях, о ней обязательно нужно знать каждому программисту!
На уроке кратко и динамично объяснены основные моменты, связанные с округлением и потерей точности вычислений с вещественными числами типа данных float.

Пікірлер: 25
@6o6eP777
@6o6eP777 4 жыл бұрын
При первом просмотре столько ржал что не понял о чем речь, пересмотрел понял :D Спасибо!
@MrFerting
@MrFerting 3 жыл бұрын
Сначала было понятно, потом не понятно. А после плоской земли, понял все сразу.
@vitalynovichikhin3739
@vitalynovichikhin3739 4 жыл бұрын
Писал всё вместе с тобой в PyCharm'e спасибо за ролик. Но непонятно почему при 3.55 и 3.65 на самом деле это 3.549 и 3.649, а 3.75 и далее так и есть 3.750 как в случае с 3.45
@informlic
@informlic 4 жыл бұрын
Да, это может показаться очень мутным. Здесь легко и быстро можно ответить только так: особенности преобразования чисел на низком уровне. Но это если без подробностей. А подробности быстро не опишешь. Особенности двоичной арифметики и её преобразований... Спасибо за вопрос!
@КонстантинБелобородов
@КонстантинБелобородов 12 күн бұрын
Такое чувство, что мне Голлум тему объяснял. Еще и это бесконечное количество вставок с мемами. 🤦‍♂ А по факту, сути на одну минуту.
@user-vj4uh9py3q
@user-vj4uh9py3q Жыл бұрын
как же я угарал когда у него произошло раздвоение личности
@spamcolector
@spamcolector 4 жыл бұрын
4:40 Что єто за форматирования? Силочку можно на раздел в доке?
@dodokwak
@dodokwak 4 жыл бұрын
Ударим Decimal - ом по банковским округлениям.
@informlic
@informlic 4 жыл бұрын
Да! Это как раз то, с чего я начал составлять план ролика, но решил, что это надо осветить отдельно 😅
@informlic
@informlic 4 жыл бұрын
И интересно ваше мнение про смену формата. Вы видите, что я прямо сильно поменял формат подачи материала (речь, конечно, не про диалог конкретно в этом ролике). Прокомментируйте, если есть желание, как стало на ваш взгляд: лучше или хуже.
@dodokwak
@dodokwak 4 жыл бұрын
@@informlic стало более приближено к ученической аудитории по форме подачи, что наверное логично,т.к. нужно ориентироваться на target group. Однако содержание не пострадало: сохранилась и даже лучше проявился формат вопрос: ответ. мы так сами с собой так и разговариваем когда самообучаемся. Вообще, главная задача - удержать внимание людей. поэтому более короткие ролики (5-10мин) легче перевариваются, чем длинные. + всё, что в этом помогает, хотя и может даже и раздражать (но в меру) - хорошо. вспоминаю,как я прослушивала постдипломный курс , где был лектор весьма почтенного возраста с огромной указкой, к они периодически бил по поверхности стола, сидящих в первом ряду курсисток. все здрагивали, пугались от таких страшных звуков ( а некоторые по-моему даже просыпались). но после очень многих лет, я до сих пор помню его материал, а остальные лекторы "прошли сторной".
@informlic
@informlic 4 жыл бұрын
Мой низкий поклон за такой подробный ответ! Спасибо
@dodokwak
@dodokwak 4 жыл бұрын
@@informlic рада помочь, успехов вам.
@ДмитрийМустафин-е2м
@ДмитрийМустафин-е2м 4 жыл бұрын
а как же принудительное округление в большую или меньшую сторону?
@QScientist
@QScientist 3 жыл бұрын
это другая функция
@shemyy
@shemyy Жыл бұрын
Это ceil и floor
@lepdmitrijj
@lepdmitrijj 3 жыл бұрын
Автор, че с этим делать? У меня округление с ceil идёт при числах после точки например 32.0000000000001,но мне этого не НАДА? Мне нужно что бы округление шло при таких цифрах 32.01, 32.21 и так далее, то есть на сотых
@QScientist
@QScientist 3 жыл бұрын
берешь и транкейтишь ручками. Пусть твое число A, тогда A = 123.456789 digit = 3 #порядковый номер цифры после запятой print(int(A*10**digit)/10**digit) вывод: 123.456 Проверено в Google Colab
@АлексейТишаков
@АлексейТишаков 3 жыл бұрын
ребят вам еще везет у вас прям в языке можно округлять без библиотек
@QScientist
@QScientist 3 жыл бұрын
а в чем проблема написать свою функцию? делов то на 30 секунд
@ХатинМаликов
@ХатинМаликов Жыл бұрын
Просто твоя моя не понимает. Тут дело робята в железе . Что то надо до делать в мозгах компьютера , то ли не та истина, то ли не та ложь.
@Lorent_De_Mor
@Lorent_De_Mor 2 жыл бұрын
Больше воды, чем толку
@НиколайПрокопьев-т4м
@НиколайПрокопьев-т4м 2 ай бұрын
Ну, и зачем такое округление идиотское?
@QScientist
@QScientist 3 жыл бұрын
просто round не использовать. Да и нормальные программисты стараются избегать double/float, и используют int. Об этом даже в бородатые годы статьи были на habr
@АртёмИгнатьев-р1х
@АртёмИгнатьев-р1х 2 жыл бұрын
клоунада
Inside Out 2: ENVY & DISGUST STOLE JOY's DRINKS!!
00:32
AnythingAlexia
Рет қаралды 17 МЛН
Worst flight ever
00:55
Adam W
Рет қаралды 53 МЛН
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 36 МЛН
Python 4: первые впечатления
24:35
Python Russian
Рет қаралды 13 М.
Основы NumPy Python | Массивы, Матрицы И Операции Над Ними
38:26
PyLounge - программирование на Python и всё о IT
Рет қаралды 106 М.
Брутфорс пароля на python
10:31
IT DIGITAL PROGRESS
Рет қаралды 1,2 М.
Как устроен Python? ► Детальный разбор
11:05
Хауди Хо™ - Просто о мире IT!
Рет қаралды 581 М.
Решаю простые задачки на Python с сайта Codewars
13:44
Клуб дедов-программистов
Рет қаралды 454 М.
Inside Out 2: ENVY & DISGUST STOLE JOY's DRINKS!!
00:32
AnythingAlexia
Рет қаралды 17 МЛН