- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Делаю простой калькулятор на javascript без знаний языка. Столкнулся со странной проблемой. Вот функция:
var с = (uroven1 - uroven2) / uroven1*100;
var e = uroven1/(uroven1*time1)*100;
if (a < b) {
document.getElementById('vyvod_1').innerHTML = 'текст ' + c;
document.getElementById('vyvod_2').innerHTML = 'текст.';
} else if (a >= b) {
document.getElementById('vyvod_1').innerHTML = 'текст ' + d;
document.getElementById('vyvod_2').innerHTML = 'Текст ' + e + ' текст';
}
Краткая цель: когда переменная A больше B (их вводит пользователь), то рассчитывается процент роста (переменная С). В противном случае – процент падения (переменная E).
Затем, в первом случае выводится один результат ("уровень вырос на..."), во втором случае – другой ("уровень упал на...").
И вот получается почему-то бред. Когда числа маленькие исходных переменных, то все работает. Но когда первое число вводимой переменной ввести больше (больше 1000, а иногда и даже 100), скрипт всегда считает, что оно больше второго и выдает результат для a < b.
Как такое может быть? Я понимаю, что этот код – убожество, но мне лишь бы считало)) Просто учусь...
---------- Добавлено 09.01.2019 в 01:29 ----------
Методом подбора пришел к заключению, что работать адекватно перестает при определенном коэффициенте, который зависит от размера переменных. Например, при около 1000 работает только когда переменная A более, чем в 2,7 раза меньше переменной B. Но при маленьких числах этот коэфициент значительно меньше, и все работает нормально пока между ними есть около 10% разницы.
---------- Добавлено 09.01.2019 в 01:41 ----------
Проблему решил изменением конструкции If.
Вместо того, чтобы сравнивать переменные между собой, я сравнил их разницу с нулем. Т.е. вместо "if a < b" сделал "var z = a-b; if z <0;"
Так и не понял разницы, но в таком виде все работает нормально.
Так и не понял разницы, но в таком виде все работает нормально.
а и в у вас строковые переменные