Connect with us

Видео и подкасты для разработчиков

Числа в программировании — Почему компьютер не понимает 0.1 + 0.2

В этом выпуске говорим о том, как компьютеры представляют числа – от int и float до NaN, BigInt, decimals и комплексных.

Опубликовано

/

     
     

В этом выпуске говорим о том, как компьютеры представляют числа – от int и float до NaN, BigInt, decimals и комплексных. В гости пришёл разработчик Никита Тонский Прокопов, с которым мы прошлись по всему числовому зоопарку: обсудили, зачем нужны разные типы, где они подводят, и почему 0.1 + 0.2 ≠ 0.3 – не баг, а особенность.

Разбираемся, как работают переполнения, откуда берётся погрешность, можно ли использовать float для денег (спойлер: нельзя), и что общего между округлением и падением ракеты. А ещё вспомнили любимые числовые фэйлы, сравнили числа в разных языках программирования и даже сыграли в игру на угадывание результатов арифметических операций.

Содержание:

  • 00:00 О чём выпуск
  • 04:06 Как компьютеры представляют числа
  • 07:46 Целые: без знака и со знаком
  • 16:08 Почему byte в Java – знаковый
  • 18:50 Переполнение и модуль
  • 22:31 Округление и его сюрпризы
  • 26:58 Почему 0.1 + 0.2 ≠ 0.3
  • 38:26 Зачем вообще нужны float’ы
  • 44:25 Как это используется в крипте
  • 49:25 Что внутри у числа с плавающей точкой
  • 01:06:28 Рациональные числа в Clojure
  • 01:19:33 Особенности JavaScript
  • 01:20:32 Артефакты float-арифметики
  • 01:24:22 Где числа важны программисту
  • 01:27:43 Типизация и читаемость
  • 01:30:04 Что будет с точностью дальше
  • 01:35:48 Финальные мысли

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: