猜测python应该是有现成的模块可以解决该问题,不过没找到,所以自己简单写了个函数处理:
def tranform(inputString):
num_value = re.compile('^[0-9.]+([*|x][0-9]+)+[E|e|^][+-]?[0-9]+$')
result = num_value.match(inputString)
if result:
temp1 = float(1)
res = re.match('^[0-9.]+([*|x][0-9]+)+', inputString)
if (not res is None) and len(str(result)) > 0:
if len(re.split('[*|x]', res.group(0))) > 1:
for a in re.split('[*|x]', res.group(0)):
temp1 = temp1 * float(a)
temp2 = re.findall('[E|e|^][+-]?[0-9]+$', inputString)[0]
inputTemp = str(temp1) + str(temp2)
val = float(inputTemp.replace('^', 'E'))/10
num_value = re.compile('^[-+]?[0-9]+.?[0-9]?$')
result = num_value.match(str(val))
if result:
return val
如有问题,望纠正.当然有更好更简单的方法欢迎提出