PINE LIBRARY

math_utils

By jason5480
Updated
Library "math_utils"
Collection of math functions that are not part of the standard math library

num_of_non_decimal_digits(number) num_of_non_decimal_digits - The number of the most significant digits on the left of the dot
  Parameters:
    number: - The floating point number
  Returns: number of non digits

num_of_decimal_digits(number) num_of_decimal_digits - The number of the most significant digits on the right of the dot
  Parameters:
    number: - The floating point number
  Returns: number of decimal digits

floor(number, precision) floor - floor with precision to the given most significant decimal point
  Parameters:
    number: - The floating point number
    precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: number floored to the decimal digits defined by the precision

ceil(number, precision) floor - ceil with precision to the given most significant decimal point
  Parameters:
    number: - The floating point number
    precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: number ceiled to the decimal digits defined by the precision

clamp(number, lower, higher, precision) clamp - clamp with precision to the given most significant decimal point
  Parameters:
    number: - The floating point number
    lower: - The lowerst number limit to return
    higher: - The highest number limit to return
    precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: number clamped to the decimal digits defined by the precision
Release Notes
v2
Remove simple from time serries
Release Notes
v3

Added:
clamp_up(number, lower, higher, precision)
  clamp - clamp with precision to the given most significant decimal point. Ceil is favored for the precision rounding.
  Parameters:
    number: - The floating point number
    lower: - The lowerst number limit to return
    higher: - The highest number limit to return
    precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: number clamped to the decimal digits defined by the precision

clamp_down(number, lower, higher, precision)
  clamp - clamp with precision to the given most significant decimal point. Floor is favored for the precision rounding.
  Parameters:
    number: - The floating point number
    lower: - The lowerst number limit to return
    higher: - The highest number limit to return
    precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: number clamped to the decimal digits defined by the precision
Release Notes
v4
Add overloads that support series precision with none simple parameter
Release Notes
v5
Add example for quantity calculation
Release Notes
v6
Use Method syntax for a more intuitive interface!
Release Notes
v7
Add "simple" overloads for the number itself.
Release Notes
v8
(minor) use this as an indication for the "self type" instance
Release Notes
v9

Added:
method floor_to_mintick(this)
  floor_to_mintick - floor with precision to the mintick most significant decimal point
  Namespace types: series float, simple float, input float, const float
  Parameters:
    this (float): - The floating point number
  Returns: - number floored to the decimal digits defined by the mintick precision

method ceil_to_mintick(this)
  ceil_to_mintick - ceil with precision to the mintick most significant decimal point
  Namespace types: series float, simple float, input float, const float
  Parameters:
    this (float): - The floating point number
  Returns: - number ceiled to the decimal digits defined by the mintick precision

Updated:
method num_of_non_decimal_digits(this)
  num_of_non_decimal_digits - The number of the most significant digits on the left of the dot
  Namespace types: series float, simple float, input float, const float
  Parameters:
    this (float): - The floating point number
  Returns: - number of non digits

method num_of_decimal_digits(this)
  num_of_decimal_digits - The number of the most significant digits on the right of the dot
  Namespace types: series float, simple float, input float, const float
  Parameters:
    this (float): - The floating point number
  Returns: - number of decimal digits

method floor(this, precision)
  floor - floor with precision to the given most significant decimal point
  Namespace types: simple float, input float, const float
  Parameters:
    this (simple float): - The floating point number
    precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: - number floored to the decimal digits defined by the precision

method ceil(this, precision)
  ceil - ceil with precision to the given most significant decimal point
  Namespace types: simple float, input float, const float
  Parameters:
    this (simple float): - The floating point number
    precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: - number ceiled to the decimal digits defined by the precision

method clamp_up(this, lower, higher, precision)
  clamp - clamp with precision to the given most significant decimal point. Ceil is favored for the precision rounding.
  Namespace types: simple float, input float, const float
  Parameters:
    this (simple float): - The floating point number
    lower (float): - The lowerst number limit to return
    higher (float): - The highest number limit to return
    precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: - number clamped to the decimal digits defined by the precision

method clamp_down(this, lower, higher, precision)
  clamp_down - clamp with precision to the given most significant decimal point. Floor is favored for the precision rounding.
  Namespace types: simple float, input float, const float
  Parameters:
    this (simple float): - The floating point number
    lower (float): - The lowerst number limit to return
    higher (float): - The highest number limit to return
    precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: - number clamped to the decimal digits defined by the precision

method clamp(this, lower, higher, precision)
  clamp - clamp with precision to the given most significant decimal point. No specific direction is favored for the precision rounding.
  Namespace types: simple float, input float, const float
  Parameters:
    this (simple float): - The floating point number
    lower (float): - The lowerst number limit to return
    higher (float): - The highest number limit to return
    precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change
  Returns: - number clamped to the decimal digits defined by the precision
Release Notes
v10
Updated documentation and used force_overlay for the label in the example
ceildecimal_placedecimalsfloorMATHprecisionroundnumber
jason5480
📧 Contact info
Discord: jason5480#0463
Telegram: @jason5480

₿ Addresses
BTC - bc1qxh3jeld7ke70fx3r5q243d96jsx0etth6x8fa7
ERC20 - 0xf2757DfC1e11A08c96EC93EA8684B024E9367aad

* Please contact me before any donation ☕

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House rules.

Disclaimer