def parse_price(s):
if '.' not in s and ',' not in s:
return float(s)
elif s[-3] in ',.':
dec_char = s[-3]
sep_char = {'.': ',', ',':'.'}[dec_char]
s = s.replace(sep_char, '')
s = s.replace(',', '.')
return float(s)
else:
s = s.replace(',','').replace('.', '')
return float(s)
tests = """\
1.000
1.000,20
23.14
1,234
1.23
3,12
""".splitlines()
for test in tests:
print(test, '->', parse_price(test))
使用price-parser:
此代码使用以下逻辑:
否则,如果“,”或“.”是距结尾的第三个字符,则这是十进制字符:
一。去掉非十进制字符,如有必要,将十进制字符改为“.”,然后转换为浮点
其他
一。没有给出小数部分,只需去掉所有“,”和“.”并转换为浮点值
这段代码非常依赖于获取有效的字符串-无效的字符串如}将给出错误的值。在
"1,2,3.000"
或{给予
^{pr2}$相关问题 更多 >
编程相关推荐