Спасибо, что создал JS... / it-юмор :: js :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek js 

Спасибо, что создал JS...

Z typeof NaN <• "number" > 9999999999999999 10000000000000000 > 0.5+0.1==0.6 <• true i 0.1+0.2==0.3 <• false * Math.max() <• -Infinity > Math.min() <• Infinity > []+[] <. 11 11 > []+{} <• "[object Object]" > {)+[] <• 0 > true+true+true===3 <• true £ true==l <• true > true===l <•
Подробнее
Z typeof NaN <• "number" > 9999999999999999 10000000000000000 > 0.5+0.1==0.6 <• true i 0.1+0.2==0.3 <• false * Math.max() <• -Infinity > Math.min() <• Infinity > []+[] <. 11 11 > []+{} <• "[object Object]" > {)+[] <• 0 > true+true+true===3 <• true £ true==l <• true > true===l <• false > (*+[]+[]+'[]).length <• 9 > 9+"l" <• "91" * 91-"1" <• 90 > []==0 true > true-true <• 0
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,js
Еще на тему
Развернуть
Почему 0.5+0.1==0.6 - это норм, а 0.1+0.2==0.3 - не норм?
Почему 9+"1" - на выходе строка (или чар?), а 91-"1" - на выходе число?
Что это за шайтанство?
Вот почему.
Ты же не сам фоткал экран, а сделал это через специальный сайт?
Джой на телефоне включен был. А ты труба на компе. Ну согрешил разок, с кем не бывает.
Еще вариант: дают комп с вырваными USB и доступом только во внутреннюю сеть.
Ух... или динозаврия (тогда хоть можно поставить адаптер на усб) или паранойя.
Банковкая сеть
Параноидальный динозавр.
ну оно оправдано, сеть реально чудовищная
Теперь у меня еще больше вопросов.
В двоичном коде нет дроби 0.3
Вообще в двоичном коде дроби записываются иначе чем целые числа. Там они делят число 1
К примеру:
0,1 - это 0.5
0,01 - это 0.25
0,001 - 0.125

0,11 - 0,75
0,011 - 0,375
0,0101 - 0,3125
И т.д.
В общем ты не можешь в двоичном коде поделить 1 так, чтобы получить в итоге ровно 0,3.
0.3 -- это десятичная дробь ее всегда можно представить виде точного числа в плавающей точкой.
Если в кратко то 0.3 = 3 * 10 ^ -1. А при записи числа с плавающей точкой в битовую строку запишется 3 и степень десятки (то есть -1).

А еще JS - это не компилируемый язык, так что все эти рассуждения про двоичный код здесь неуместны. Вся эта ситуация -- косяк интерпретатора
Это decimal, а float и double как описано выше, прилагаю что это намеренно перенесённый косяк.
Добро пожаловать в мир операций с плавающей точкой. Числа с плавающей точкой (дроби) представляются в виде 32-х или 64-х битного числа в экспоненциальной форме, часть бит отводятся на мантиссу, а часть - на показатель степени (и один бит знака). Например, float (32 бит) имеет 8 бит экспоненты и 23 бита мантиссы. Число образуется следующим образом:
(-l)s * l,M*2(ß-127>

Т.е. полная мантисса (обратите внимание на единичку слева от М) лежит в интервале [1.0; 2.0). И да, это ДВОИЧНАЯ мантисса. И основание степени в числе тоже ДВА.

И теперь внимание вопрос: можно ли представить число 0.3 ТОЧНО в экспоненциальной форме с основанием ДВА? Ответ: нет, нельзя. И это не имеет отношения к джаваскрипту. Это стандарт IEEE 754, который применяется ВЕЗДЕ. Все современные процессоры имеют сопроцессоры для быстрой работы с числами с плавающей запятой (FPU). Все языки оперируют именно такими числами. Это везде. А человек, который создал картинку в посте, - долбоеб, который выучить только шутейки про джаваскрипт, но не знает основ.

И да, это приводит к проблемам. Например, нельзя просто так взять и сравнить два числа с плавающей запятой.

if(a == 0.5) // хер тебе в рыло, сраный урод

Это побитовое сравнение, и требует точного совпадения, которое может быть, а может не быть. Как правильно.

if(abs(a - 0.5)

Но это детский сад по сравнению с проблемой вычислительной устойчивости. Представь, что ты делаешь какие-то расчеты. Это может быть скучное решение уравнений на сраной лабе, расчет напряженности в крыло ебучего самолета или же физический движок твоей любимой игры. И куча методов расчета - итерационные, они считают одну и ту же хуйню стопицот раз, приближаясь к правильному ответу. Но если что-то пошло не так (например, ты дохуя раз прибавляешь очень маленькое число к очень большому), то весь твой расчет может пойти по пизде, дать неверные результаты или НЕ СОЙТИСЬ НАХУЙ! ДА, БЛЯТЬ, ВЗРЫВАЙ ЭТУ ЕБАНУЮ ФИЗИКУ! (Думаю, многие видели, как в разных играх с физикой объекты может распидорасить. Garrys's Mod это любит).
Спасибо парсеру реактора за мое счастливое детство.

if(abs(a - 0.5)
насчет первого хз, а насчет второго - потому что когда конкатенируешь строку с чем-нибудь, что строкой не является, то все операнды выражения преобразуются в строки, и на выходе получается строка. с другой стороны, операция "-" для строк не определена. зато она определена для чисел, поэтому джаваскрипт пытается преобразовать все операнды операнды в числа (если это возможно - и в данном случае это так) и выдать числовой результат, а не Nan
Даже специальный сайт создали для таких как вы
https://0.30000000000000004.com/
А что ему не понравилось в правом столбике во втором? Так любой язык false отдаст.
Скоро уже 2019 год, а кто-то всё еше считает, что шутки про динамическую типизацию смешные
Шутки про попытки решить эти проблемы с помощью TypeScript смешные
Автор картинки - долбоеб. Ума на мейнстримовые шутки про JS хватило, а ума покурить как сам JS, так и базовые вещи - нет.
1) Всякие приведения чисел и строк, тем более массивов, булеанов - это, конечно, пиздец.
2) Floating point - это не пиздец, это везде, выше написали уже
3) true == 1 и true === 1 - так в жс специально запилили костыль-оператор "===" для точного сравнения без приведения типов.
Пиздец, что-то из чёрной магии.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
 EhÑ, .Li Iv.Vs .». 1 * til, 41 I V 1 '¡ гЛ ' Я Л^Ш .1, 1 1 m «Г. .4' ж Г«*«г ä—» л 4 Гл^5iMTEC WHAT HAPPENED? DANCt Of?ИГРАТЬ СЕЙЧАС WWW.GMSLOTS.COM Выход СОМ Лучшее geek Прикольные гаджеты. Научный, инженерный и айтишный юмор Комиксы ) ( гифки ) ( краошые картинки^ ( geek ) ( video ) ( aníme ) ( Эротика") ( котэ ) ( story ) ( игры anon личное Картинка: из файла из URL Щ опрос редактор А апоп12345 щупал
подробнее»

joyreactor эволюция бля верните обратно песочница

ИГРАТЬ СЕЙЧАС WWW.GMSLOTS.COM Выход СОМ Лучшее geek Прикольные гаджеты. Научный, инженерный и айтишный юмор Комиксы ) ( гифки ) ( краошые картинки^ ( geek ) ( video ) ( aníme ) ( Эротика") ( котэ ) ( story ) ( игры anon личное Картинка: из файла из URL Щ опрос редактор А апоп12345 щупал