2014-10-09 2 views
2

Я пытаюсь тянуть номер (721576481415319), который начинается на 21-й символ, из названия страницы, как так:ParseInt изменяет число

parseInt(document.title.substring(21), 10); 

Это возвращает строку как целое число 721576481415319 . Я не могу понять, почему он меняет последние два числа. Любая помощь будет оценена по достоинству.

+0

Что такое полная строка заголовка? –

+0

@Sebas - О, я вижу это сейчас. –

+0

http://www.2ality.com/2013/01/parseint.html, интересные статьи, 'все числа являются плавающими точками в javascript' mind blown! – Sebas

ответ

3

Согласно What is JavaScript's highest integer value that a Number can go to without losing precision? максимальное значение целого числа является 9007199254740992.

Я попробовал ваш расчет на http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_parseint и я могу подтвердить вашу проблему.

Похоже, что вопрос выходит за пределы этого максимального значения и округляет последние 2 цифры.

+0

Спасибо. Это устраняет проблему – metalfoley

0

Вы превысили лимит double-precision floating-point format, что используется JavaScript. Вы не можете использовать этот точный номер непосредственно в JavaScript. Вы можете использовать его как строку, но если вам нужно сделать арифметику, вам понадобится a bignum library.

Смежные вопросы