Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 54

Некорректное сравнение чисел

19.04.2019, 01:09. Показов 2985. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, господа!
Начал мучить JS.
Написал коротенький код для сравнения двух чисел. Пока числа однозначные, оно работает.
Однако если вбить, например, 9 и 22222, то 9 перевешивает. Может оно воспринимает многозначные числа как строки и их необходимо переводить в числа?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Задание 7</title>
    <script src="script.js" defer></script>
  </head>
  <body>
    <p>Первое число:<input type="text" id="a"></p>
    <p>Второе число:<input type="text" id="b"></p>
    <button onclick="compare()">Сравнить</button>
    <p id="out">Результат:</p>
  </body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function compare() {
  var first, second, answer;
  answer = document.getElementById("out");
  first = document.getElementById("a").value;
  second = document.getElementById("b").value;
  if (first > second) {
    answer.innerHTML = "Первое число больше";
  }
  else if (first < second) {
    answer.innerHTML = "Второе число больше";
  }
  else {
    answer.innerHTML = "Числа равны";
  }
}
https://codepen.io/fesenkobv/pen/ROMXxO
 Комментарий модератора 


Правила форума
4. Порядок создания тем.

4.11 Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах. По этой же причине коды программ также должны находиться на форуме.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2019, 01:09
Ответы с готовыми решениями:

некорректное сравнение дробей
Следующий код работает не так, как предполагалось: double __rD(double d, int symAPt) { // round double symAPt = pow(10, symAPt);...

Некорректное сравнение округленных значений
Добрый вечер! Прошу помощи/разъяснения, пожалуйста! Ситуация следующая: В коде форме вычисляются выражения для расчета скидки....

Сравнение ячеек в диапазоне (Некорректное значение)
Здравствуйте уважаемые форумчане! Столкнулся с такой проблемой, у меня есть столбец &quot;А&quot; и &quot;Б&quot; на одном листе книги,...

7
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
19.04.2019, 01:16
Борис Ф, пропускайте значения через parseInt()
JavaScript
1
2
first = parseInt(document.getElementById("a").value);
second = parseInt(document.getElementById("b").value);
0
13 / 13 / 9
Регистрация: 28.07.2017
Сообщений: 103
19.04.2019, 01:20
Однозначные тоже воспринимаються как строки.
Это будет видно, если прописать в JS
JavaScript
1
console.log(typeof first); // -> string
А если внимательнее посмотреть на тип тега <input>, станет все понятно.
HTML5
1
<input type="text">
1
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
19.04.2019, 01:29
dude78, тип поля не имеет значения. Будет он text или number - ничего не изменится. Данные из полей ввода всегда приходят строкой.
2
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 54
19.04.2019, 01:59  [ТС]
Спасибо, господа!
Предварительно пробовал в inpute менять text на number, ничего не поменялось.
Я правильно понимаю, что в дальнейшем все числа, которые приходят из inputа необходимо пропускать через parseInt или есть какое то более приемлемое решение?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
19.04.2019, 02:12
Лучший ответ Сообщение было отмечено Борис Ф как решение

Решение

Цитата Сообщение от Борис Ф Посмотреть сообщение
Я правильно понимаю, что в дальнейшем все числа, которые приходят из inputа необходимо пропускать через parseInt или есть какое то более приемлемое решение?
Ну, еще есть вариант типа "костыль" Умножать значения на единицу:
JavaScript
1
2
first = document.getElementById("a").value * 1;
second = document.getElementById("b").value * 1;
1
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
19.04.2019, 07:58
JavaScript
1
2
first = +document.getElementById("a").value;
second = +document.getElementById("b").value;
нет ?
0
13 / 13 / 9
Регистрация: 28.07.2017
Сообщений: 103
19.04.2019, 23:21
Пифагор, спасибо, не подумал об этом. Оно и логично, в какой-то степени. Просто браузеры на телефонах предоставляют сразу клавиатуру с цифрами, я полагаю, если тип будет "number".

Vigi, все правильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.04.2019, 23:21
Помогаю со студенческими работами здесь

Некорректное считывание чисел в консоли
У меня в программе нужно вводить число, это делается через Console.Read(); Однако, при вводе обнаруживается очень неприятная вещь (на...

Поиск чисел в строках и сравнение этих чисел
Здравствуйте. Помогите пожалуйста с задачей: есть файл, в нём несколько строк. В каждой строке есть текст и одно число. Нужно провести...

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

Сравнение чисел
Скажите, пожалуйста, логику сравнения трёх чисел на языке алгоритма, чтобы рез-т был таким: первое &gt; второе &gt; третье

Сравнение чисел
Даны 2 числа. Если первое больше второго по абсолютной величине, то уменьшить первое в 5 раз. Иначе оставить без изменения.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru