Discuss / Python / 作业:

作业:

Topic source

-- coding: utf-8 --

小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:

s1 = 72 s2 = 85 rs=(s2-s1) *100/s1 print('growth rate: %.1f %%'%rs)

试了很多遍,为什么 * 必须放在 / 之前才能得到正确结果,倒过来就不行?

我先除再乘,完全没问题啊: r = (s2-s1)/s1*100 print('%.1f%%' % r)

小许维尼

#3 Created at ... [Delete] [Delete and Lock User]

-- coding: utf-8 --

小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位: s1 = 72 s2 = 85 rs=(s2-s1) 100/s1 print('growth rate: %.1f %%'%rs) 试了很多遍,为什么 必须放在 / 之前才能得到正确结果,倒过来就不行?--------------------------谁知道这个是怎么回事????

测试下 结果是一样的

魏振昊

#5 Created at ... [Delete] [Delete and Lock User]

是否与解释器的版本有关? 执行结果能分享一下吗?

s1 = 72.0 s2 = 85.0 rs=(s2-s1) /s1*100 print('growth rate: %.1f %%'%rs)

这样就可以了,我也被困扰了,网上查了下资料才发现。

原因是整数除法执行地板除,浮点数除法执行精准除法


  • 1

Reply