You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本实现不规则格式数字/货币转float类型

解决方案

要处理格式混乱的捷克克朗数字并转换为float类型,核心是区分千位分隔符(可能是逗号或点,出现多次)和小数分隔符(最后一个出现的逗号或点),具体实现步骤如下:

  1. 清理输入字符串,移除所有无关字符(空格、"Kč"标识),仅保留数字、逗号和点;
  2. 定位最后一个逗号或点的位置,将其作为小数分隔符;
  3. 移除整数部分的所有分隔符,拼接整数部分与小数部分,最终转换为float。

实现代码

import re

def parse_czk(value):
    # 移除所有非数字、非逗号、非点的字符
    cleaned = re.sub(r'[^\d.,]', '', value)
    # 找到最后一个逗号或点的位置
    last_sep_index = max(cleaned.rfind(','), cleaned.rfind('.'))
    
    if last_sep_index != -1:
        # 拆分整数部分和小数部分,移除整数部分的所有分隔符
        integer_part = cleaned[:last_sep_index].replace(',', '').replace('.', '')
        decimal_part = cleaned[last_sep_index + 1:]
        return float(f"{integer_part}.{decimal_part}")
    else:
        # 无小数部分,直接转换
        return float(cleaned)

# 测试示例列表
my_list = ['100,30 Kč','10 000,00 Kč', '10,000.00 Kč', '10000 Kč', '32.100,30 Kč', '12.345,678.91 Kč']
for item in my_list:
    print(f"{item} → {parse_czk(item)}")

测试输出

100,30 Kč → 100.3
10 000,00 Kč → 10000.0
10,000.00 Kč → 10000.0
10000 Kč → 10000.0
32.100,30 Kč → 32100.3
12.345,678.91 Kč → 12345678.91

内容的提问来源于stack exchange,提问作者HonzaVole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:10:27