Ответ 1
Попробуйте parseInt.
parseInt("065", 10);
<ч/" > Второй параметр предназначен для radix, и в соответствии с документацией он всегда должен быть указан. MDN говорит,
radix
Целое число, которое представляет собой основание вышеупомянутого строка. Всегда указывайте этот параметр, чтобы устранить путаницу читателя и гарантировать предсказуемое поведение. Различные реализации вызывать разные результаты, когда не указывается радиус.
.............
.............
Если radix undefined или 0 (или отсутствует), JavaScript предполагает следующее:
- Если входная строка начинается с "0x" или "0X", радиус равен 16 (шестнадцатеричный), а остальная часть строки анализируется.
- Если входная строка начинается с "0", радиус равен восьми (восьмеричный) или 10 (десятичный). Именно тот, который выбран радик, зависит от реализации. ECMAScript 5 указывает, что используется 10 (десятичное), но не все браузеры поддерживают это еще. По этой причине всегда указывается радиус при использовании parseInt.
- Если входная строка начинается с любого другого значения, радиус равен 10 (Десятичное).
Например, в некоторых реализациях parseInt("01803")
будет выдано 1
. Предполагая, что цель состоит в том, чтобы получить 1803
, вызовите parseInt с радиусом 10, чтобы убедиться, что синтаксический анализ выполняется в базовой десятичной системе нумерации. То есть: parseInt("01803", 10)
даст 1803
. Обратите внимание, что для нецелого значения parseInt() будет округлять число, возвращаемое как целое число. paseInt("018.03", 10)
даст 18
.