Страницы

Поиск по вопросам

четверг, 12 декабря 2019 г.

Сравнение строк, содержащих числа

#javascript #строки #сравнение


Почему при сравнении двух строк "70px" и "622px" первое значение оказывается больше?
    


Ответы

Ответ 1



Как сравнить числа, содержащиеся в строках, рассказано в ответе @11111000000. А я расскажу о том, почему такое происходит при сравнении самих строк. Строки сравниваются с помощью лексикографического порядка. Лексикографически "70px" больше, чем "622px" (т.к. символ "7" идет после символа "6"). Лексикографический порядок — отношение линейного порядка на множестве слов длины n над некоторым упорядоченным алфавитом ∑. Своё название лексикографический порядок получил по аналогии с сортировкой по алфавиту в словаре. Слово a предшествует слову b (a

Ответ 2



просто никогда не сравнивайте строки иначе, нежели == и != . Почему это так работает, знать конечно познавательно, однако на практике: parseFloat('70px', 10) - и только так. Не parseInt, ибо в CSS размеры могут быть с дробными долями.

Ответ 3



Символ '7' больше символа '6', поэтому первая строка больше второй строки. Сравнение происходит посимвольно в соответствии с кодами символов.

Комментариев нет:

Отправить комментарий