如何将两数除法运算结果按四舍五入规则取为整数值?
问题原因
你当前使用的math.ceil()是向上取整逻辑:只要计算结果的小数部分大于0,就会向更大的整数进位,比如2.4用math.ceil()计算会得到3,和你需要的四舍五入效果不符。
解决方案
你需要替换为四舍五入逻辑,同时调整打印格式匹配预期输出,以下是两种常用实现方式:
方式1:使用Python内置round()函数
这是最简便的方法,默认按「小数部分≥0.5进位,<0.5舍去」规则取整,符合你的示例需求:
a = [12, 14] b = [5, 3] for k in range(len(a)): div_res = a[k] / b[k] rounded_res = round(div_res) # 保留1位小数展示除法结果,完全匹配你的示例输出格式 print(f"{a[k]} / {b[k]} = {div_res:.1f} => {rounded_res}")
注意:
round()遇到刚好为x.5的数值时,会取距离最近的偶数,比如round(2.5)得到2,round(3.5)得到4,如果需要x.5统一进位可以用第二种方式。
方式2:手动实现进位逻辑
如果需要统一的「小数部分≥0.5就进位」规则,可以用加0.5后转整数的方式实现:
a = [12, 14] b = [5, 3] for k in range(len(a)): div_res = a[k] / b[k] rounded_res = int(div_res + 0.5) print(f"{a[k]} / {b[k]} = {div_res:.1f} => {rounded_res}")
两种方式运行后都会输出你预期的结果:
12 / 5 = 2.4 => 2 14 / 3 = 4.7 => 5
如果需要完全和你示例里的4.6展示效果一致,可以自定义小数截断逻辑即可。
内容的提问来源于stack exchange,提问作者miladjurablu
相关产品推荐
相关产品推荐

