在我问之前环顾了一会儿,但我似乎找到了很多关于如何使用正则表达式进行电子邮件和货币转换的方法,但只是将一个数字乘以一个设定值却一无所获。本质上,我有一个货币值字段,可以说:127.25GBP,需要转换为 165.42(只有两个小数点,没有货币指标)可以这样做吗?如果可以,怎么做?
您的帮助将不胜感激!
谢谢
德尔
在我问之前环顾了一会儿,但我似乎找到了很多关于如何使用正则表达式进行电子邮件和货币转换的方法,但只是将一个数字乘以一个设定值却一无所获。本质上,我有一个货币值字段,可以说:127.25GBP,需要转换为 165.42(只有两个小数点,没有货币指标)可以这样做吗?如果可以,怎么做?
您的帮助将不胜感激!
谢谢
德尔
正则表达式用于文本匹配,而不是算术。一些接受正则表达式的工具可用于执行算术运算,例如 Perl 和 Awk。
正则表达式的核心是用于匹配字符串,并且在某些软件库中用于将字符串替换为其他字符串和类似的字符串处理,但不用于进行数学运算。您需要将使用正则表达式捕获的值存储为数字类型并对其进行乘法运算,然后在需要时再次将结果格式化为字符串。
在 python 2.7 中:
import re
exchangeRate = 165.42 / 127.25
numString = re.match('(\d+.\d\d)GBP', '127.25GBP').group(1)
num = float(numString)
numConverted = num * exchangeRate
numConvertedFormatted = "%.2f" % numConverted
不过,如果您要进行认真的货币计算,我建议您使用定点整数(或在 Python 十进制的情况下)而不是浮点数。对于近似值,浮点数就足够了。