如何在Python中提取带货币符号的数值并进行算术运算?
提取带货币符号的数值并进行算术运算的解决方案
为什么isdigit()无法得到正确结果
isdigit()仅对0-9的纯数字字符返回True,小数点.和货币符号$都会被排除,所以你用它处理$61.52时,只会保留6152,丢失了关键的小数点,自然无法得到61.52。
解决方案1:直接替换货币符号后转浮点数
最简单的方式是去掉字符串中的$,再转换为浮点数,这样就能保留小数点:
# 提取单个数值 s = '$61.52' num = float(s.replace('$', '')) print(num) # 输出61.52 # 两个数值相加 s1 = '$61.52' s2 = '$57.74' total = float(s1.replace('$', '')) + float(s2.replace('$', '')) print(total) # 输出119.26
解决方案2:用正则表达式提取数字部分
如果遇到更复杂的格式(比如字符串中混杂其他字符),可以用正则表达式精准匹配包含小数点的数字:
import re def get_numeric_value(s): # 匹配包含小数点的正数,如需支持负数可改为r'-?\d+\.?\d*' match = re.search(r'\d+\.\d+', s) return float(match.group()) if match else 0.0 # 提取并相加 num1 = get_numeric_value('$61.52') num2 = get_numeric_value('$57.74') print(num1 + num2) # 输出119.26
内容的提问来源于stack exchange,提问作者Mayo
相关产品推荐
相关产品推荐

