Python中不使用f-string与format,如何截取两位小数且不四舍五入?
实现方法
给定 num = 14.667789,要在Python中不使用f-strings和format()方法,获取不四舍五入的两位小数结果14.66,以下是几种可行的实现方式:
整数运算截断法
利用整数取整特性,先将数值放大100倍后取整,再缩小回原比例:num = 14.667789 output = int(num * 100) / 100 print(output) # 输出 14.66注意:若遇到浮点数精度导致的微小偏差(如某些数值乘100后出现类似
1466.9999999999998的情况),int()会直接截断小数部分,依然能得到正确结果。字符串截断法
将数值转为字符串后,分割整数与小数部分,截取前两位小数再拼接转换:num = 14.667789 num_str = str(num) if '.' in num_str: int_part, dec_part = num_str.split('.') output = float(int_part + '.' + dec_part[:2]) else: output = num # 无小数的情况直接返回原数 print(output) # 输出 14.66注意:此方法不适用于数值以科学计数法表示的场景,若需兼容可先处理科学计数法格式。
math模块向下取整法
使用math.floor()对放大后的数值向下取整,再缩小比例:import math num = 14.667789 output = math.floor(num * 100) / 100 print(output) # 输出 14.66注意:该方法对正数有效,若处理负数需调整逻辑(如负数应使用
math.ceil())。
内容的提问来源于stack exchange,提问作者Abbas Shaikh
相关产品推荐
相关产品推荐

