- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Делаю простой калькулятор на 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;"
Так и не понял разницы, но в таком виде все работает нормально.
Так и не понял разницы, но в таком виде все работает нормально.
а и в у вас строковые переменные