Python 前导零后加逗号
所需结果(最终浮点值): 00→ 0.0 二十→ 20.0 十五→ 15.0 05→ 0.5 003→ 0.03 01→ 0.1Python 前导零后加逗号,python,python-3.x,Python,Python 3.x,所需结果(最终浮点值): 00→ 0.0 二十→ 20.0 十五→ 15.0 05→ 0.5 003→ 0.03 01→ 0.1 我该怎么做?初始值是一个字符串,但当我将其转换为float时,零将消失。有没有为此预先制作的函数?从您的示例来看,似乎您可以在第一个字符后添加一个小数,然后将其转换为float。例如 my_num = '002' my_num = float(my_num[0] + '.' + my_num[1:]) 和往常一样,在施法时,用try/except将其包裹起来,以防
我该怎么做?初始值是一个字符串,但当我将其转换为float时,零将消失。有没有为此预先制作的函数?从您的示例来看,似乎您可以在第一个字符后添加一个小数,然后将其转换为float。例如
my_num = '002'
my_num = float(my_num[0] + '.' + my_num[1:])
和往常一样,在施法时,用try/except将其包裹起来,以防输入不可施法。您可以使用float
例如:
a=“20”
y=float(a)使用正则表达式很容易做到这一点
In [1]: import re
In [2]: def reformat_numbers(num):
...: return float(re.sub('^0', '0.', num))
...:
In [3]: [reformat_numbers(n) for n in ['00', '20', '15', '05', '003', '01']]
Out[6]: [0.0, 20.0, 15.0, 0.5, 0.03, 0.1]
我不确定你想做什么,因为你没有给出规范,只有例子。但这是可行的:
for num in ("00", "20", "15", "05", "003", "01"):
if num[0] == '0':
print('0.' + num[1:])
else:
print(num + '.0')
测试:
$ python3 convert.py
0.0
20.0
15.0
0.5
0.03
0.1
另一个处理异常的简单实现:
import math
x = ['00', '20', '15', '05', '003', '01', '0']
def convert_to_float(val):
try:
if val[0] == '0':
if len(val[1:]) > 0:
decimal_part = float(val[1:])
val = decimal_part / math.pow(10, len(val[1:]))
else:
val = 0.0
else:
val = float(val)
except ValueError:
print('Not a number')
return val
for val in x:
print(convert_to_float(val))
输出:
0.0
20.0
15.0
0.5
0.03
0.1
0.0
你能在第一次聊天后添加一个小数点,然后将其转换为浮点吗?Thoms已经提到了转换为浮点,但他注意到了一个问题。