Прошлые домены не функционирует! Используйте адрес
ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
Парадокс обнаружился в одном из JS тредов, когда один из анонов вычитая из целого числа 0.1 стал получать неверную с точки зрения последовательность. Вместо списка 0.9, 0.8.. стали возникать другие числа.
Суть парадокса
Разные языки дают разные результаты одной операции
a) 0.1 + 0.2 = 0.3
b) 0.1 + 0.2 = 0.30000000000000004
Верным принято считать результат истинный с точки зрения математики.
A. Языки, сумевшие избежать или частично решить парадокс
C, C++
C#
Go
Hugs (Haskell)
MySQL
Pascal
PHP
Powershell
Prolog
B. Языки подверженные парадоксу
ActionScript
Erlang
GHC (Haskell)
Java (если не использовать тип double)
JS
Perl
Python (если не использовать обёртку print)
Ruby
Предварительные выводы
Как видно из списков, они пока не полны (пытаемся дополнить их), они весьма просто делятся на академические (классические) и модные (хипстерские). Хипстерские забивают на математическую точность, как и большинство разработчиков. Оп треда сам видел как представители b-группы в серьёз наставал на том, что программисту не нужна математика. Дескать, программист только набирает текст, а математикой должен заниматься математик.
Языки требующие проверки парадокса 0.1 + 0.2 != 0.3
Basic, в том числе визуальный
Dart
Delphi (ObjectPascal)
Objective-C
Swift
Vala