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

В Pine Script существует 2 способа усечения числа:

  1. Функция int преобразует дробное значение в целое число, отсекая десятичную часть: 5,84622 становится 5.
  2. Написать свою пользовательскую функцию или индикатор, которая при помощи функции int сможет обрезать значение до определенного количества знаков после запятой. Можно преобразовать 5,84622 в 5,84 или 5,846.

Рассмотрим подробнее оба этих способа.

Как обрезать дробную часть

Чтобы превратить значение с плавающей запятой float в целое int число, мы просто вызываем функцию int(). Дробная часть числа отсекается, т.к. функция возвращает только целую часть, не меняя ее.

Так это выглядит в коде:


Приведем примеры, как работает функция int:

Pine Script. 2 способа отбросить дробную часть чисел в TradingView

Давайте построим график цен закрытия close и сравним его с графиком усеченных цен закрытия:

  • синий график — цена закрытия с исходным количеством знаком после точки
  • зеленый график — усеченные цены закрытия (график построен по целым числам)

Давайте построим график цен закрытия close и сравним его с графиком усеченных цен закрытия:

Как сократить значения в Pine Script до нескольких знаков после запятой

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

Предлагаем написать вот такой простой индикатор:


Как им пользоваться:

  • если вы хотите оставить 2 знака после запятой, то умножайте серию исходных чисел или одно число на 100, а после того, как вычислите целую часть при помощи функции int, опять разделите на 100.
  • если вы хотите оставить 3 знака после запятой, то умножайте серию исходных чисел на 1000, а после того, как вычислите целую часть при помощи функции int, разделите на 1000.
  • если вы хотите оставить 4 знака после запятой, то умножайте на 10 000 и после выделения целой части, делите 10 000 и тд.

Этот индикатор отсекает 2 знака после запятой, не округляя при этом числа:

Как сократить значения в Pine Script до нескольких знаков после запятой

Заключение:

чтобы отсечь все знаки после запятой, используйте функцию int. Она возвращает целое число, не округляя его. Чтобы оставить несколько знаков после запятой, вам необходимо написать свой индикатор или функцию.