Python禁用int()/round()/if()实现浮点数取整问题求教
解法思路与代码
核心思路是通过纯字符串操作提取浮点数的整数部分,全程不使用禁用的int()、round()、if()等方法:
- 先把浮点数转为字符串,再拼接
.0,保证字符串里一定存在小数点,避免输入为整数时找不到小数点的问题 - 用
find('.')定位第一个小数点的位置 - 通过字符串切片截取小数点之前的内容,直接输出这个字符串(输出结果是纯数字形式,不会显示成
3.0这类浮点数格式)
示例代码
x = 3.14159 s = str(x) + ".0" dot_pos = s.find('.') print(s[:dot_pos])
测试效果
- 当
x=3.14159时,输出3 - 当
x=5.999时,输出5(注:此方法属于截断取整,若要实现四舍五入,仅用题目允许的三个方法无法完成,因为必然需要判断十分位的数值,而这离不开条件逻辑,正好是题目禁用的内容) - 当
x=7时,输出7
内容的提问来源于stack exchange,提问作者I3C
相关产品推荐
相关产品推荐

