python實現 數值 轉換爲 萬,億單位,保留3位小數(例:18000轉換爲1.8萬)

"""
@author: zhangjun.xue
@time: 2020/5/20 13:14
@file: unit_test.py
@desc: python實現 數值 轉換爲 萬,億單位,保留3位小數
"""


def str_of_num(num):
    '''
    遞歸實現,精確爲最大單位值 + 小數點後三位
    '''
    def strofsize(num, level):
        if level >= 2:
            return num, level
        elif num >= 10000:
            num /= 10000
            level += 1
            return strofsize(num, level)
        else:
            return num, level
    units = ['', '萬', '億']
    num, level = strofsize(num, 0)
    if level > len(units):
        level -= 1
    return '{}{}'.format(round(num, 3), units[level])


if __name__ == "__main__":
    print(str_of_num(1))
    print(str_of_num(2))
    print(str_of_num(10))
    print(str_of_num(11))
    print(str_of_num(100))
    print(str_of_num(123))
    print(str_of_num(1000))
    print(str_of_num(1234))
    print(str_of_num(10000))
    print(str_of_num(11923))
    print(str_of_num(5463443))
    print(str_of_num(54634434))
    print(str_of_num(97736213623))
    print(str_of_num(977362136234))
    print(str_of_num(9773621362345))
    print(str_of_num(97736213623456))

STD OUT:

1
2
10
11
100
123
1000
1234
1.0萬
1.192萬
546.344萬
5463.443萬
977.362億
9773.621億
97736.214億
977362.136億

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章