Ответ 1
Всегда используйте перегрузку, которая принимает радиус в качестве второго параметра:
parseInt('011',10) = 11
parseInt('1') = 1
parseInt('01') = 1
parseInt('5') = 5
parseInt('05') = 5
parseInt('8') = 8
Но почему: parseInt('08') = 0
parseInt('09') = 0
Всегда используйте перегрузку, которая принимает радиус в качестве второго параметра:
parseInt('011',10) = 11
вот подсказка:
parseInt('011') = 9
Если он начинается с 0, он анализируется как восьмеричное число.
Цифры, начинающиеся с 0
(not 0x
), являются восьмеричными числами. Поэтому 8
и 9
не являются действительными восьмеричными числами.
При преобразовании строки в десятичное число в JavaScript вы можете использовать оператор плюс вместо parseInt или parseFloat, как в этом примере:
x = + ( "12" );//для x присваивается номер 12 после его преобразования из строки "12"
x = + ( "1" + "2" );//для x присваивается номер 12 после его преобразования из строки "12"
Другие ответили, почему часть.
Чтобы удалить, вы можете использовать parseFloat
() или parseInt (значение, база)
Fiddle