"""
@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億