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