diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 7629b1e01..f4a06d929 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -2855,8 +2855,10 @@ def amount_to_precision(amount: float, amount_precision: Optional[float], :return: truncated amount """ if amount_precision is not None and precisionMode is not None: + precision = int(amount_precision) if precisionMode != TICK_SIZE else amount_precision + # precision must be an int for non-ticksize inputs. amount = float(decimal_to_precision(amount, rounding_mode=TRUNCATE, - precision=amount_precision, + precision=precision, counting_mode=precisionMode, )) diff --git a/tests/rpc/test_rpc.py b/tests/rpc/test_rpc.py index 1a2428fe7..64cad6daf 100644 --- a/tests/rpc/test_rpc.py +++ b/tests/rpc/test_rpc.py @@ -761,7 +761,7 @@ def test_rpc_force_exit(default_conf, ticker, fee, mocker) -> None: # and trade amount is updated rpc._rpc_force_exit('3') assert cancel_order_mock.call_count == 1 - assert trade.amount == filled_amount + assert pytest.approx(trade.amount) == filled_amount mocker.patch( 'freqtrade.exchange.Exchange.fetch_order',