Округление чисел до десятичных Ucoz
|
|
[1] Iliz [24.07.2015, 08:42] |
Добрый день. Есть проблема с округлением чисел на Ucoz. Пытался на гуглить но ответа не получил. Вообщем на юкозе есть округление чисел после математических вычислений работает оно так: Код <?INT($OTHER2$*1000-1000/4)?> Но это округление очень грубое до целых и всегда округляет к меньшему числу. Т.е. если число выйдет 2.99, то округлиться до 2. Поэтому интересует решение (системно или скриптом), что бы округляло до десятичных или сотых. Возможно такое? |
|
[2] likbezz [24.07.2015, 12:24] |
Iliz, Но это округление очень грубое до целых и всегда округляет к меньшему числу. В общем-то, так и написано в справке ..
Поэтому интересует решение (системно или скриптом), что бы округляло до десятичных или сотых. Системное - оч сложное, типа так: обрезать число по запятой, сравнить с 5 (если округляем до целых), если больше - то к первой части прибавляем единицу, если меньше - нет... короче - геморрой еще тот..
Скриптом: Math.round Код Math.round(20.49) // 20 Math.round(20.5) // 21 Есть еще: Math.ceil - округляет все в большую сторону Math.floor - в меньшую
Для дробных так:
Но у осла было с toFixed недопонимание... и тогда начинались костыли: Код Math.round(99.8556456546 * 10) / 10) // 99.9 Math.round(99.8556456546 * 100) / 100) // 99.86 --- |
|
[3] Iliz [24.07.2015, 14:31] |
Но у осла было с toFixed недопонимание... У какого осла? А можно пример привести с готовым кодом скрипта для формулы $OTHER2$*1000-1000/4, так я лучше пойму, что имеется в виду.
Сообщение отредактировал Iliz - Пятница, 24.07.2015, 14:33 |
|
[4] likbezz [24.07.2015, 19:12] |
Iliz, Интернет эксплорера
А можно пример привести с готовым кодом скрипта для формулы $OTHER2$*1000-1000/4 Код <input name="other2" type="text" value="4" /> <script type="text/javascript"> alert(Number(+$('input[name="other2"]').val()*1000-1000/4).toFixed(3)); // 3750.000 </script> - знак + служит для преобразования строки в число |
|
[5] Iliz [26.07.2015, 23:01] |
Вообще не работает. А зачем input нужен? Мне нужно, что бы он по формуле высчитывал и выдавал уже конечный результат с округлением. |
|
[6] likbezz [27.07.2015, 03:15] |
Iliz, http://likbezz.ucoz.ru/_example/_rest/_2014/p1/alert_number.html
- это инпут $OTHER2$ можно пример привести с готовым кодом скрипта для формулы $OTHER2$*1000-1000/4,
Мне нужно, что бы он по формуле высчитывал и выдавал уже конечный результат с округлением. Так он и делает |
|
[7] Iliz [27.07.2015, 09:27] |
Вы меня не поняли. Из дополнительного поля ($OTHER2$) при добавление материала берется число. А мне нужно, что бы скрипт пересчитывал - это число по формуле и округлял полученное новое число до сотых. На странице материала и комментариев к нему у меня выглядит код так. Код $OTHER2$ (<?($OTHER2$*1000-1000)/4?> °P) а отображается, к примеру, так. 1.019 (4.74999999999997 °P) А надо так что бы отображалось: 1.019 (4.75 °P)
Сообщение отредактировал Iliz - Понедельник, 27.07.2015, 09:34 |
|
[8] likbezz [27.07.2015, 11:44] |
Iliz, а отображается, к примеру, так. 1.019 (4.74999999999997 °P) А надо так что бы отображалось: 1.019 (4.75 °P) Код $OTHER2$ <script type="text/javascript">document.write('('+Number((+$OTHER2$*1000-1000)/4).toFixed(2)+' °P)');</script> |
|