Math.round(); (при его активации не срабатывает условие...)
Здравствуйте!
Есть такой код: function z (param1,param2,param3){ if (param1< 1001 && param1 > 0) { var forTime = new Date(); var test = forTime.getTime() / (1000*60*60*24) + parseInt(param1); var WeekDays = new Date(Math.round(test)*(24*60*60*1000)); //param1 = parseInt(Math.round(param1)); if (param1[param1.length-2] == 1 && param1> 99) { param1 = param1+" дней "; } else if (param1[param1.length-1] == 1) { param1 = param1+" день "; } else if (param1[param1.length-1] == 2 || param1[param1.length-1] == 3 || param1[param1.length-1] == 4) { param1 = param1+" дня "; } else{ param1 = param1+" дней "; } alert("Через "+param1+"будет вот такая дата: "+"\n"+ "День недели: " + param2[WeekDays.getDay()]+"\n"+ "Число: " + WeekDays.getDate()+"-е"+"\n"+ "Месяц: " +param3[WeekDays.getMonth()]+"\n"+ "Год: " + WeekDays.getFullYear()+"-й"+"\n"); } else{ alert("Ваши данные не соответствуют критериям ввода!"+"\n"); } } var answer = prompt("Введите число для определения будущей даты! \n (От 0 до 1000-чи...) ","Это будет: ") var dayWeek = [" Воскресенье"," Понедельник"," Вторник"," Среда"," Четверг"," Пятница"," Суббота"]; var month = [" Январь"," Февраль"," Март"," Апрель"," Май"," Июнь"," Июль"," Август"," Сентябрь"," Октябрь"," Ноябрь"," Декабрь"] z(answer,dayWeek,month); Следующая строчка закоментирована поскольку при её активации не срабатывает условие связанное с изменением слова "день"!? //param1 = Math.round(param1); Вопрос: Как округлить полученные при вводе данные до целых чисел, с учетом если пользователь введёт дробные? (и что бы при этом окончания у слов "день" подвергались склонениям, как и ранее...) P.S. В JS новичек! Поэтому прошу за код меня сильно не бить... В заранее всем Очень Признателен за помощь! |
Цитата:
<input type="text" id="text" value="0.9" /> <input type="button" id="button" value="click" /> <script> document.getElementById('button').onclick = function() { alert(Math.round(document.getElementById('text').value)); }; </script> Логический оператор И имеет эквивалент &&, а не &. Если вам нужно произвести арифметические операции со значением из поля ввода, то сперва значение нужно привести к целому типу, для этого достаточно добавить унарный + перед значением. |
Цитата:
|
Цитата:
alert(["1" + 1, +"1" + 1, parseInt("1") + 1, parseFloat("0.1") + 1].join('\n')); |
Цитата:
Хотя не совсем ясно каким тогда образом срабатывает мое условие? Получается что я сравниваю строку с цифрой? (Но тем не менее это срабатывает до тех мор пока я не подключаю обьект math.round(); После этого условие не срабатывает... Сейчас я изменил закоментированую строку - но если её задействовать то все равно ничего не работает.. ) P.S. Хотя возможно я что то не так понял... |
Цитата:
var i = '10'; alert((i[i.length-2] == 1); Чего вы хотите достичь этим условием? param1[param1.length-2] == 1 && param1> 99 |
Огромное Спасибо! Теперь понял в чем моя ошибка...
Этим условием хотел достич того, что бы при цифре 111 было склонение: "Дней" вместо "День"! |
Перед тем как создавать тему пользуйтесь поиском, потому что ваша проблема не уникальна
А также прочтите о Plural Forms |
Часовой пояс GMT +3, время: 17:31. |