• Страница 1 из 1
  • 1
Модератор форума: Yuri_G  
Сообщество uCoz » Модули uCoz » Дополнительные функции » Системные коды обрезания текста uCoz (Каким образом округлить число до N знаков после комы)
Системные коды обрезания текста uCoz
Shurik6211
Сообщений: 32
Репутация: 16

Сообщение # 1 | 20:53:05
Код
<? $OTHER4$/100*$OTHER5$/490 ?>
К примеру у меня есть число получено таким образом, где $OTHER4$, $OTHER5$ - числа, припустим выходит число 0.271322448979592
Подскажите каким способом можно округлить значение после комы?!
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 2 | 21:40:52
Shurik6211, Javascript ...

Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 3 | 22:39:34
Shurik6211, вообще есть системный оператор int() он округляет в сторону нуля. Соответственно, если у тебя число 67.9 то <?int($OTHER4$)?> будет 67
Вот небольшой пример, как это можно решить...
Код
<?if(substr($OTHER4$/100*$OTHER5$/490,strpos($OTHER4$/100*$OTHER5$/490,'.')+1,1)<=5)?><?int($OTHER4$/100*$OTHER5$/490)?><?else?><?int($OTHER4$/100*$OTHER5$/490)+1?><?endif?>

Данный пример будет ориентирован на первое число после точки. Соответственно, если оно меньше или равно 5, то округлит в меньшую сторону, если больше 5, то округлит в большую сторону.
В твоем примере вернет 0 ,так как десятая часть(число после точки) = 2.
Можно написать более сложный скрипт, для более точного вычисления.

А вообще, это вычисление лучше произвести в форме добавления через js и результат(можно и округлить сразу) вставлять в одно дополнительное поле, таким образом, $OTHER5$ можно сохранить для других нужд.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Сообщение отредактировал Head-Mad - Пятница, 30 Авг 2013, 22:49:20
kkott
Сообщений: 20
Репутация: 14

Сообщение # 4 | 02:52:25
вычесть округленное до нуля число из неокругругленного. если полученный результат меньше 0,5 , просто округляем через int, иначе плюс один

Код
<?if((($OTHER4$/100*$OTHER5$/490) - int($OTHER4$/100*$OTHER5$/490)) < 0.5)?>
     <?int($OTHER4$/100*$OTHER5$/490)?>
<?else?>
     <?int($OTHER4$/100*$OTHER5$/490)+1?>
<?endif?>
Сообщение отредактировал kkott - Суббота, 19 Дек 2015, 02:53:50
Сообщество uCoz » Модули uCoz » Дополнительные функции » Системные коды обрезания текста uCoz (Каким образом округлить число до N знаков после комы)
  • Страница 1 из 1
  • 1
Поиск: