我正在研究Python2.7。我创建了一个简单的程序,它获取球体的半径(r=6)并计算其体积。我用括号试图将更高的先例组合在一起。当我使用这个程序时:
> import math as m
> sphere = (4/3)*(m.pi)*(6**3)
> print(sphere)
我得到了一个错误的值678.58
当我使用这个程序时:
import math as m
sphere = (4)*(m.pi)*(6**3)/3
print(sphere)
不管括号是如何分组的,只要我把分母放在等式的末尾,我就得到了正确的值904.77792
Tags:
问题是,这是一个错误的结果
因为4是一个整数类型,你把它除以另一个整数。因此,Python(2.7)返回1,而不是1.3333。如果你想得到一个十进制值,你可以这样做
在第二种情况下,当数
m.pi
是浮点数时,这就是为什么将浮点数除以整数得到正确结果的原因正如其他人所说,这是一个整数与浮点除法的问题
要使除法与Python 3中的除法类似(即始终使用浮点除法,除非您专门使用
//
),只需从以下内容开始您的程序:…这会将
/
的行为更改为您所期望的但是您使用Python 2.7有什么具体原因吗?它已被弃用,不再受支持。目标是在新项目中使用Python3
在Pyhton 2.7中,两个
int
之间的除法产生一个int
结果。您可以通过使用以下选项之一将分区中的一个参数类型转换为float来解决此问题:顺便问一下,您真的需要使用Python2.x吗?如果您正在开发新的东西,我建议您迁移到Python3.x,因为Python 2 has been deprecated将在2020年
相关问题 更多 >
编程相关推荐