python 中是否有缩短大数的功能?

Is there a function to shorten large numbers in python?

我正在尝试在 pygame(Python 3.8)中编写一个闲置游戏,但它涉及在一些小空间(150x50 像素)中放置一些相当大的数字。所以,我一直在通过玩其他闲置游戏来寻找问题的答案。我注意到对于大多数闲置游戏,在数字达到一百万后,计数器只显示前 1、2 或 3 位数字(取决于逗号前面的数字)。例如,数字 32,532,345 将显示为 32M,而数字 123,423,643,426 将显示为 123B。所以,这让我问,是否有一个 Python 函数可以做到这一点?我如何编写一个 python 函数来 return 这样一个数字,使其只有 4 位数字长,但代表更大的数量?一如既往,提前谢谢你。

这完全取决于您要进行的舍入,但使用 Python 切片的简单通用方法如下:

def shorten_number(number_to_shorten):
    str_number_to_shorten = str(number_to_shorten)
    if len(str_number_to_shorten) > 9 and len(str_number_to_shorten) <= 12:
        return str_number_to_shorten[:-9] + "B"
    elif len(str_number_to_shorten) >= 7 and len(str_number_to_shorten) <= 9:
        return str_number_to_shorten[:-6] + "M"

print(shorten_number(32532345))
print(shorten_number(123423643426))

输出
32M
123B

您可以扩展它并添加其他 elif 条件。