在python中有一个缩短大数的函数吗?

问题描述 投票:0回答:1

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

python function pygame largenumber
1个回答
2
投票

这全部取决于您要进行的舍入,但是使用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))

输出3200万123B

您可以扩展它,并添加其他elif条件使其适应它。

© www.soinside.com 2019 - 2024. All rights reserved.