如何将货币格式化为可读性最强的python格式
因此,我试图从一些非常大的浮动中格式化货币,例如如何将货币格式化为可读性最强的python格式,python,formatting,currency,Python,Formatting,Currency,因此,我试图从一些非常大的浮动中格式化货币,例如 spendings = [1204343.65, 1000000.01, 2310.08, 5.82] 例如,这里最可读的形式可能是: [$1.2M, $1M, $2.31K, $5.82] 那么什么是最合适的方法呢。locale和PythonMoney不能像放逗号那样进行必要的格式化,但它们无法实现压缩。所以,有没有一种方法我可以做到这一点,使它是在其最可读的形式。我在StackOverflow上也找到了很多答案,但没有一个真正回答了我想
spendings = [1204343.65, 1000000.01, 2310.08, 5.82]
例如,这里最可读的形式可能是:
[$1.2M, $1M, $2.31K, $5.82]
那么什么是最合适的方法呢。locale和PythonMoney不能像放逗号那样进行必要的格式化,但它们无法实现压缩。所以,有没有一种方法我可以做到这一点,使它是在其最可读的形式。我在StackOverflow上也找到了很多答案,但没有一个真正回答了我想要实现的目标。不会总是有办法的。但你必须找到一种方法:
def human_format(num):
num = float('{:.3g}'.format(num))
magnitude = 0
while abs(num) >= 1000:
magnitude += 1
num /= 1000.0
return '${}{}'.format('{:f}'.format(num).rstrip('0').rstrip('.'), ['', 'K', 'M', 'B', 'T'][magnitude])
因此,将其应用于列表如下:
spendings = [1204343.65, 1000000.01, 2310.08, 5.82]
[human_format(i) for i in spendings]
产生:
['$1.2M', '$1M', '$2.31K', '$5.82']
另外,一些答案实际上对这个功能有帮助。我找不到它,但我会尽快喜欢它