Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2014, 14:13
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Почему 1e309 = Infinity?
alert(1e308 === Infinity); //false
alert(1e309 === Infinity); //true



alert(100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 === Infinity); //false
alert(1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 === Infinity); //true
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2014, 14:14
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Ruslan_xDD, найдена бесконечность

сделай ширину поменьше)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2014, 14:22
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Решил я пересчитать все частицы в нашей вселенной (не спрашивайте как я это сделал через javascript, потому что секрет!), потом засунуть их в кое-какую секретную ф-цию, но она не работает, потому что Infinity!

Значит, получаю их в переменную:
var particles = 389587194053013940595470244701993000048274889597755379011047591848843966483017477432111045883058288487389002000224885992344938222859859388274859184895958828283948598663467458836638724566991048590858838858681943905069392848596098939405069829400495677904059682950682204959503388506093300385000399573791194958383858385438895039960349319495306883959658249540556892990003583581183949599200593545935935911149495396002495901;

blowUpTheUniverse(particles); //Error


Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2014, 14:33
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Кстати, придумал задачку для профессиональных JavaScript программистов (предлагаю в учебник занести ):

У Васи есть страница, на которой есть div с высотой 1e308 пикселей. Сколько лет Вася будет крутить косёсико мышки, чтобы достигнуть конца?

http://learn.javascript.ru/play/y5SGt

P.S.: почему на середине прокрутки всё становится белое?
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2014, 16:56
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Всё-таки нашёл грань между бесконечностью и числом:

var n1 = 179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791;
var n2 = 179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792;


alert( n1 === Infinity ); //false

alert( n2 === Infinity ); //true


//А вот так почему-то false :/
alert( (n1 + 1) === Infinity ); //false

Последний раз редактировалось ruslan_mart, 02.12.2014 в 16:59.
Ответить с цитированием
  #6 (permalink)  
Старый 02.12.2014, 20:30
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Число просто должно быть больше Number.MAX_VALUE, только и всего.
Оно будет округлено либо до того же MAX_VALUE либо до Infinity.

Для работы с большими числами существуют специальные библиотеки.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему alert(18306744..toString(32)); выводит Hello IZLOM Общие вопросы Javascript 43 09.11.2014 02:29
Почему Java-версия интерфейсов Node имеет не стандартизованные имена? dump Общие вопросы Javascript 0 10.08.2012 13:19
Почему некоторые операторы возвращают значения, а не ссылки? dump Общие вопросы Javascript 15 25.07.2012 17:28
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
Почему не определяется втарая переменная? Арман Общие вопросы Javascript 3 09.04.2011 11:14