【发布时间】:2021-04-23 16:55:06
【问题描述】:
python 中有两个小数字,如@987654321@,但出现错误both should be rational parameters,如果它转换为整数,它会变为零。
from fractions import Fraction
import math
pole=input('which pole is your choosen ? monopole , dipole , quadpole : ')
e=1602e-22
epsi=885e-14
#pi=314e-2
if pole=='monopole':
x=input("Enter value for 'x' parameter : ")
x=int(x)
y=input("Enter value for 'y' parameter : ")
y=int(y)
z=input("Enter value for 'z' parameter : ")
z=int(z)
n=input("Enter value for n in 'q=n*e' sentence : ")
n=int(n)
q=n*(e)
r=math.sqrt(pow(x,2)+pow(y,2)+pow(z,2))
g=(4*math.pi*epsi) #g=1.1121237993707868e-10
v=fractions.Fraction((-1),(g)) * fractions.Fraction((q),(r))
print('v=',v,'r=',r,'q=',q,sep='\n')
收到此错误:
--> 174 raise TypeError("both arguments should be "
175 "Rational instances")
176
如果以这种形式计算'v'参数:
v=Fraction(('-1'),('1.1121237993707868e-10')) * Fraction((q),(r))
还是有同样的错误。
【问题讨论】:
-
您应该包含一个最低限度的工作示例作为您的代码,以便我们帮助解决它。
-
Pi 不是理性的,所以事情看起来不太好。