Update "round coin value" to trim trailing zeros
This commit is contained in:
parent
42bb33811c
commit
a7a25bb285
@ -29,18 +29,23 @@ def decimals_per_coin(coin: str):
|
|||||||
return DECIMALS_PER_COIN.get(coin, DECIMAL_PER_COIN_FALLBACK)
|
return DECIMALS_PER_COIN.get(coin, DECIMAL_PER_COIN_FALLBACK)
|
||||||
|
|
||||||
|
|
||||||
def round_coin_value(value: float, coin: str, show_coin_name=True) -> str:
|
def round_coin_value(
|
||||||
|
value: float, coin: str, show_coin_name=True, keep_trailing_zeros=False) -> str:
|
||||||
"""
|
"""
|
||||||
Get price value for this coin
|
Get price value for this coin
|
||||||
:param value: Value to be printed
|
:param value: Value to be printed
|
||||||
:param coin: Which coin are we printing the price / value for
|
:param coin: Which coin are we printing the price / value for
|
||||||
:param show_coin_name: Return string in format: "222.22 USDT" or "222.22"
|
:param show_coin_name: Return string in format: "222.22 USDT" or "222.22"
|
||||||
|
:param keep_trailing_zeros: Keep trailing zeros "222.200" vs. "222.2"
|
||||||
:return: Formatted / rounded value (with or without coin name)
|
:return: Formatted / rounded value (with or without coin name)
|
||||||
"""
|
"""
|
||||||
|
val = f"{value:.{decimals_per_coin(coin)}f}"
|
||||||
|
if not keep_trailing_zeros:
|
||||||
|
val = val.rstrip('0').rstrip('.')
|
||||||
if show_coin_name:
|
if show_coin_name:
|
||||||
return f"{value:.{decimals_per_coin(coin)}f} {coin}"
|
val = f"{val} {coin}"
|
||||||
else:
|
|
||||||
return f"{value:.{decimals_per_coin(coin)}f}"
|
return val
|
||||||
|
|
||||||
|
|
||||||
def shorten_date(_date: str) -> str:
|
def shorten_date(_date: str) -> str:
|
||||||
|
@ -21,16 +21,19 @@ def test_decimals_per_coin():
|
|||||||
|
|
||||||
def test_round_coin_value():
|
def test_round_coin_value():
|
||||||
assert round_coin_value(222.222222, 'USDT') == '222.222 USDT'
|
assert round_coin_value(222.222222, 'USDT') == '222.222 USDT'
|
||||||
assert round_coin_value(222.2, 'USDT') == '222.200 USDT'
|
assert round_coin_value(222.2, 'USDT', keep_trailing_zeros=True) == '222.200 USDT'
|
||||||
|
assert round_coin_value(222.2, 'USDT') == '222.2 USDT'
|
||||||
assert round_coin_value(222.12745, 'EUR') == '222.127 EUR'
|
assert round_coin_value(222.12745, 'EUR') == '222.127 EUR'
|
||||||
assert round_coin_value(0.1274512123, 'BTC') == '0.12745121 BTC'
|
assert round_coin_value(0.1274512123, 'BTC') == '0.12745121 BTC'
|
||||||
assert round_coin_value(0.1274512123, 'ETH') == '0.12745 ETH'
|
assert round_coin_value(0.1274512123, 'ETH') == '0.12745 ETH'
|
||||||
|
|
||||||
assert round_coin_value(222.222222, 'USDT', False) == '222.222'
|
assert round_coin_value(222.222222, 'USDT', False) == '222.222'
|
||||||
assert round_coin_value(222.2, 'USDT', False) == '222.200'
|
assert round_coin_value(222.2, 'USDT', False) == '222.2'
|
||||||
|
assert round_coin_value(222.00, 'USDT', False) == '222'
|
||||||
assert round_coin_value(222.12745, 'EUR', False) == '222.127'
|
assert round_coin_value(222.12745, 'EUR', False) == '222.127'
|
||||||
assert round_coin_value(0.1274512123, 'BTC', False) == '0.12745121'
|
assert round_coin_value(0.1274512123, 'BTC', False) == '0.12745121'
|
||||||
assert round_coin_value(0.1274512123, 'ETH', False) == '0.12745'
|
assert round_coin_value(0.1274512123, 'ETH', False) == '0.12745'
|
||||||
|
assert round_coin_value(222.2, 'USDT', False, True) == '222.200'
|
||||||
|
|
||||||
|
|
||||||
def test_shorten_date() -> None:
|
def test_shorten_date() -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user