Source code for ccxt_pandas.calculations.precision
"""Precision and rounding utilities for numerical data."""
import numpy as np
import pandas as pd
[docs]
def floor_series(data: pd.Series, digits: int = 0) -> pd.Series:
"""Round Series values down to specified decimal places.
Args:
data: Series to round
digits: Number of decimal places (default: 0)
Returns:
Series with values rounded down
Examples:
>>> prices = pd.Series([1.2345, 2.6789, 3.9999])
>>> floor_series(prices, digits=2)
0 1.23
1 2.67
2 3.99
dtype: float64
>>> # Round to nearest integer (floor)
>>> floor_series(prices)
0 1.0
1 2.0
2 3.0
dtype: float64
Notes:
- Uses numpy floor to round down
- Useful for price/amount precision requirements
- For rounding up, use ceil_series()
"""
return pd.Series(np.floor(data * 10**digits) / 10**digits)
[docs]
def ceil_series(data: pd.Series, digits: int = 0) -> pd.Series:
"""Round Series values up to specified decimal places.
Args:
data: Series to round
digits: Number of decimal places (default: 0)
Returns:
Series with values rounded up
Examples:
>>> prices = pd.Series([1.2345, 2.6789, 3.0001])
>>> ceil_series(prices, digits=2)
0 1.24
1 2.68
2 3.01
dtype: float64
>>> # Round to nearest integer (ceil)
>>> ceil_series(prices)
0 2.0
1 3.0
2 4.0
dtype: float64
Notes:
- Uses numpy ceil to round up
- Useful for minimum order size requirements
- For rounding down, use floor_series()
"""
return pd.Series(np.ceil(data * 10**digits) / 10**digits)