如何使用Ruby将"1.273,08"格式的货币字符串转换为浮点数值?
欧洲格式数字字符串转浮点数解决方案
你遇到的是欧洲地区常用的数字书写格式转换问题:.作为千位分隔符,,作为小数分隔符,按以下逻辑处理即可:
- 第一步:全局删除所有千位分隔符
. - 第二步:把小数分隔符
,替换为标准浮点数字符. - 第三步:转换为float类型
常用语言实现示例
Ruby(原生支持gsub)
origin_str = "1.273,08" # 先删点再换逗号 processed_str = origin_str.gsub('.', '').gsub(',', '.') float_result = processed_str.to_f # 输出结果为 1273.08
Python
origin_str = "1.273,08" processed_str = origin_str.replace('.', '').replace(',', '.') float_result = float(processed_str) # 输出结果为 1273.08
R
origin_str <- "1.273,08" processed_str <- gsub("\\.", "", gsub(",", ".", origin_str)) float_result <- as.numeric(processed_str) # 输出结果为 1273.08
注意处理顺序不能颠倒:如果先替换逗号为小数点,会得到
1.273.08这种存在两个小数点的非法格式,后续处理会报错或得到错误结果。
内容的提问来源于stack exchange,提问作者jujajjjj
相关产品推荐
相关产品推荐

