Update "round coin value" to trim trailing zeros
This commit is contained in:
		| @@ -29,18 +29,23 @@ def decimals_per_coin(coin: str): | ||||
|     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 | ||||
|     :param value: Value to be printed | ||||
|     :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 keep_trailing_zeros: Keep trailing zeros "222.200" vs. "222.2" | ||||
|     :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: | ||||
|         return f"{value:.{decimals_per_coin(coin)}f} {coin}" | ||||
|     else: | ||||
|         return f"{value:.{decimals_per_coin(coin)}f}" | ||||
|         val = f"{val} {coin}" | ||||
|  | ||||
|     return val | ||||
|  | ||||
|  | ||||
| def shorten_date(_date: str) -> str: | ||||
|   | ||||
| @@ -21,16 +21,19 @@ def test_decimals_per_coin(): | ||||
|  | ||||
| def test_round_coin_value(): | ||||
|     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(0.1274512123, 'BTC') == '0.12745121 BTC' | ||||
|     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.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(0.1274512123, 'BTC', False) == '0.12745121' | ||||
|     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: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user