• Заказ видео
  • Портфолио

Округление чисел и допись к числам

Автор: Никита Шилов Дата . Написано Учебные материалы - Adobe After Effect

rounds

Сегодня подкинули несколько вопросов об округлении чисел в АЕ, поэтому я решил написал общую эту статью. Также рассмотрим несколько примеров и вариантов округления и в качестве бонуса: «дописи» к выражениям различных символов, а также методы их размещения.

Рассмотрим вариант, где мы имеем анимированный слайдер на текстовом слое:

По умолчанию выражение в Source text имеет вид:

effect("Slider Control")("Slider")

При анимации такого слайдера, мы можем получить кучу чисел после запятой. Чтобы избавится от них мы можем округлять это значение, несколькими способами:

  • Math.round() – округление к ближайшему целому числу. Как в школе учат.
  • Math.floor() – округление до целого числа в меньшую сторону.
  • Math.ceil() – округление до целого числа в большую сторону.

Таким образом применив к нашему Source text один из методов округления мы получим:

Math.floor(effect("Slider Control")("Slider"))

В этом случае мы будем получать целое число. Но что если мы хотим оставить несколько числе после запятой? В этом случае мы можем использовать несколько вариантов:

Первый вариант умножить и разделить само выражение на 10 или 100, в зависимости от того сколько чисел вы хотите получить после запятой. Например, наше выражение Math.floor(effect("Slider Control")("Slider")) мы умножаем на 100 и делим на 100, получаем вид:

Math.floor(effect("Slider Control")("Slider")*100)/100

В этом случае мы получим две цифры после запятой. Но будьте аккуратны, если значение примет вид целого числа, то цифры после запятой показываться не будут. Поясню, число 16,66666 таким образом будет округляться до 16,67, но если число примет вид 16,5, то вне зависимости от того на сколько вы делили или умножали выражение, вид остается прежним 16,5. Если вы хотите, чтобы было также отображение фиксированного количества знаком, то нужно использовать второй вариант, а именно выражение:

  • toFixed() – округляет значение до точного количества знаков, причем отображает и нули.

Чтобы toFixed() корректно работал в выражении для Source Text необходимо сделать следующие изменения: так как source text возвращает нам строчное значение, а не числовое, нужно для начала преобразовать его в число с помощью функции parse:

parseFloat(effect("Slider Control")("Slider")).toFixed(4)

В скобках для toFixed() мы указываем количество знаков после запятой.

Помимо toFixed, вы можете использовать toPrecision(), но в этом случае в скобках нужно указывать общее число знаков для округления. То есть если вы хотите получить 18,90, то функция имеет вид toPrecision(4)

Теперь более подробно о функции parse.

Как я уже писал выше, parse преобразует строковой аргумент в числовое и существует два вида вывода: Int – целое число, Float с плавающей запятой.

Для чего же нужен parse? Например, в вашем выражении Source Text нужно дописать какой-то знак, после числа, например: «%» или «?». Напомню, что для того, чтобы дописать символ к выражению нужно добавить:

+”символ”;

Если вы будете писать непосредственно в теле выражения без преобразования строки в число, то будете получать ошибку:

divide

Чтобы избежать этого следует сделать преобразование:

parseInt(effect("Slider Control")("Slider"))+" %"

Если в вашем проекте нужно использовать знаки после запятой, то следует использовать parseFloat. Выражение примет вид: parseFloat(effect("Slider Control")("Slider"))+" $"

Вы можете скорректировать количество знаков после запятой добавив toFixed или toPrecision:

parseFloat(effect("Slider Control")("Slider")).toFixed(2)+" %"

Теперь немного об отображении Source text.

Если вы хотите, чтобы символы или какие значения в Source Text начинались с новой строки, то следует использовать выражение "\r". Например, вы хотите перенести знак $ на новую строку, для этого дописываем в выражение + "\r"

parseFloat(effect("Slider Control")("Slider")).toFixed(2)+ "\r"+" $"

Вы можете дописывать любые знаки стразу после +"\r…..". Таким образом вы получите новую строку с заданными символами или словами, например:

parseInt(effect("Slider Control")("Slider"))+"\rTotal"

 


Смотрите также:
Похожие статьи:
Не пропустите:


У Вас недостаточно прав для добавления комментариев.
Регистрируемся,а потом можно будет писать.

Популярное в АЕ: