是否存在预制Python函数可仅将整数型浮点数转换为整数?
如何仅将整数型浮点数转换为整数(非整数浮点数抛出异常)
直接上符合需求的实现代码:
def float_to_int(num): if not isinstance(num, float): raise TypeError("输入必须是浮点数") if num.is_integer(): return int(num) else: raise ValueError("无法将浮点数转换为整数")
逻辑说明
- 先校验输入类型:确保传入的是浮点数,避免非浮点数类型干扰
- 用浮点数内置的
is_integer()方法判断是否为整数型浮点数(比如2.0这类小数部分为0的浮点数) - 符合条件就转成整数返回,不符合则抛出指定异常
测试示例
- 处理整数型浮点数:
>>> float_to_int(2.0) 2
- 处理非整数型浮点数:
>>> float_to_int(2.1) ValueError: 无法将浮点数转换为整数
为什么不用int()?
你提到的int()函数确实会直接截断小数部分(类似math.floor()对正数的处理),比如int(2.1)会返回2,这显然不符合你"仅允许整数型浮点数转换"的严格要求,而上面的函数完全规避了这个问题。
内容的提问来源于stack exchange,提问作者bachzealot
相关产品推荐
相关产品推荐

