如何在Python中找出小数位数超过两位的浮点数?
筛选小数位数超过两位的数字解决方案
下面提供两种实用的Python解决方案来实现你的需求:
方法1:字符串处理法
直接将数字转换为字符串,拆分出小数部分后判断长度是否超过2,逻辑直观易懂:
nums = [0.95, 0.7, 0.0, 0.3234, 0.54563] many_decimals = [] for num in nums: num_str = str(num) if '.' in num_str: decimal_part = num_str.split('.')[1] if len(decimal_part) > 2: many_decimals.append(num) print(many_decimals) # 输出: [0.3234, 0.54563]
注意:这种方法可能受浮点数的字符串表示精度影响(比如0.95可能被显示为0.9499999999999999),如果你的数据存在这类情况,建议使用下面的数学计算法。
方法2:数学计算法
通过数学运算判断数字乘以100后取整再还原,是否与原数存在差异,能避免浮点数显示的精度问题:
nums = [0.95, 0.7, 0.0, 0.3234, 0.54563] # 用1e-9处理浮点数精度误差,避免微小差异导致误判 many_decimals = [num for num in nums if abs(num - round(num * 100) / 100) > 1e-9] print(many_decimals) # 输出: [0.3234, 0.54563]
内容的提问来源于stack exchange,提问作者big_moe
相关产品推荐
相关产品推荐

