如何将含小数的字符串转换为数值并保留小数位,避免取整
解决字符串转数值保留小数的问题
首先明确:Python里的int类型是整数类型,天生只能存储整数,不可能保留小数,你之前尝试用int(x)得到99.7是不符合语言规则的,这是核心误解。
要实现保留小数的数值转换,直接用float()函数即可,不需要再套一层int():
s = "99.7" x = float(s) print(x) # 输出:99.7
如果是处理列表里的批量字符串,用列表推导式直接转换就行:
str_list = ["99.7", "12.3", "45"] num_list = [float(s) for s in str_list] print(num_list) # 输出:[99.7, 12.3, 45.0]
要是想让整数字符串转成int、小数字符串转成float(避免把"45"变成45.0),可以写个简单的判断函数:
def convert_str_to_num(s): if '.' in s: return float(s) else: return int(s) str_list = ["99.7", "100", "3.14"] num_list = [convert_str_to_num(s) for s in str_list] print(num_list) # 输出:[99.7, 100, 3.14]
内容的提问来源于stack exchange,提问作者user20534688
相关产品推荐
相关产品推荐

