Download app/utils/format.py from bg5/zai: direct link, hf CLI and curl.
- Browser
- Download file 744 Bytes
-
https://huggingface.co/spaces/bg5/zai/resolve/main/app/utils/format.py
- Command line
-
hf download hf://spaces/bg5/zai/app/utils/format.py
-
curl -L -o format.py https://huggingface.co/spaces/bg5/zai/resolve/main/app/utils/format.py
744 Bytes
| """ | |
| 格式化工具库 | |
| """ | |
| from typing import Any | |
| def format_compact_number(value: Any) -> str: | |
| """格式化大数字,采用 K (千) / M (百万) / B (十亿) 单位展示。""" | |
| try: | |
| number = float(value or 0) | |
| except (TypeError, ValueError): | |
| return "0" | |
| abs_num = abs(number) | |
| if abs_num >= 1_000_000_000: | |
| formatted = f"{number / 1_000_000_000:.1f}B" | |
| elif abs_num >= 1_000_000: | |
| formatted = f"{number / 1_000_000:.1f}M" | |
| elif abs_num >= 1_000: | |
| formatted = f"{number / 1_000:.1f}K" | |
| else: | |
| return str(int(number)) if number.is_integer() else f"{number:.1f}" | |
| return formatted.replace(".0B", "B").replace(".0M", "M").replace(".0K", "K") | |