Сохранен 10
https://2ch.hk/pr/res/436245.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Парадокс 0.1 + 0.2 != 0.3

 Аноним 12/02/15 Чтв 13:31:06 #1 №436245 
14237370666770.png
Пердистория
Парадокс обнаружился в одном из 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
sageАноним 12/02/15 Чтв 13:34:52 #2 №436251 
>>436245
ты тупой или тралеш?
Аноним 12/02/15 Чтв 13:35:32 #3 №436252 
>>436245
> я познаю мир
Ты бы хоть погуглил внутреннее представление float и double, и почему так происходит.
Аноним 12/02/15 Чтв 13:36:23 #4 №436255 
14237373830410.jpg
>>436251
Признание глупости - первый шаг к мудрости.
sageАноним 12/02/15 Чтв 13:37:32 #5 №436257 
>>436245
Иди отсюда нахуй, школьник ёбаный. Сажи и скрыл.
Аноним 12/02/15 Чтв 13:37:34 #6 №436258 
>>436252
А ты без гугления попробуй.
Аноним 12/02/15 Чтв 13:41:46 #7 №436260 
>>436252
Вопрос, почему часть языков обрабатывает функцию вычитания верно, а другая забивает на на парадокс, как будто не знает, как считает компьютер?
Аноним 12/02/15 Чтв 13:44:57 #8 №436261 
>>436245
Есть мнение, что разные реализации того же самого JS считают по разному. Поэтому нужно проверить Dart, но к сожалению сейчас нет возможности.

>Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript, страдающего от «фундаментальных» изъянов[источник не указан 105 дней], которые невозможно исправить путём эволюционного развития.

Возможно, также был решён парадокс 0.1 + 0.2 != 0.3
Аноним 12/02/15 Чтв 13:45:54 #9 №436263 
>>436261
Проверьте кто может, желательно 32 и 64-битные версии по отдельности
https://www.dartlang.org/
sageАноним 12/02/15 Чтв 13:51:34 #10 №436264 
>>436245
ieee 754
comments powered by Disqus