编程

24 阅读1分钟

小M在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。小M还发现,有时候输入的数字字符串前面会有无用的 0,这些也需要精简掉。请你帮助小M编写程序,完成这个任务。

def solution(s: str) -> str: # 去除前导零 s = s.lstrip('0')

# 分离整数和小数部分
if '.' in s:
    integer_part, fractional_part = s.split('.')
else:
    integer_part, fractional_part = s, ''

# 处理整数部分,插入千分位逗号
if integer_part:
    integer_part = ''.join(reversed(integer_part))  # 反转整数部分
    integer_part = ','.join(integer_part[i:i+3] for i in range(0, len(integer_part), 3))  # 每三位插入一个逗号
    integer_part = ''.join(reversed(integer_part))  # 再次反转回来

# 合并整数和小数部分
result = integer_part
if fractional_part:
    result += '.' + fractional_part

return result

if name == 'main': print(solution("1294512.12412") == '1,294,512.12412') print(solution("0000123456789.99") == '123,456,789.99') print(solution("987654321") == '987,654,321')