Python公式Q=√[(2*C*D)/H]结果整数四舍五入问题求助
解决Python公式计算中的四舍五入问题
嘿,我来帮你搞定这个小问题~
你现在的核心问题是没有对最终计算出的Q值做四舍五入取整,反而对已经是整数的D做了多余的round操作。咱们一步步来修正:
原代码的问题分析
- 你输入的D已经是整数了,
a=int(round(D))这一步完全没必要,round整数结果还是它本身; - 计算出Q之后,你直接打印了浮点数结果,没有对这个值进行四舍五入处理,所以得到了18.24而不是整数18。
修正后的代码
import math C = 50 H = 30 # Python2用raw_input(),Python3用input() D = int(raw_input()) # 直接对根号计算的结果做四舍五入 Q = round(math.sqrt((2 * C * D) / H)) # 若需要确保输出是严格整数类型,可转为int:Q = int(round(math.sqrt((2 * C * D) / H))) print(Q)
测试验证
当输入100时,计算过程是:
(2 * 50 * 100) / 30 = 10000 / 30 ≈ 333.333
开根号后≈18.257
经过round()四舍五入后得到整数18,完美符合你的需求~
内容的提问来源于stack exchange,提问作者X_y_z
相关产品推荐
相关产品推荐

