標題不言自明。這裏發生了什麼?我怎麼能得到這個不發生?我真的不得不改變我的所有單位(這是一個物理問題),以便我可以得到一個足夠大的答案,python不會將1-x取整爲1?一個減一個小數字等於一個?處理小數字
代碼:
import numpy as np
import math
vel=np.array([5e-30,5e-30,5e-30])
c=9.7156e-12
def mag(V):
return math.sqrt(V[0]**2+V[1]**2+V[2]**2)
gam=(1-(mag(vel)/c)**2)**(-1/2)
print(mag(vel))
print(mag(vel)**2)
print(mag(vel)**2/(c**2))
print(1-mag(vel)**2/(c**2))
print(gam)
輸出:
>>> (executing lines 1 to 17 of "<tmp 1>")
8.660254037844386e-30
7.499999999999998e-59
7.945514251743055e-37
1.0
1.0
>>>
誰需要閱讀「什麼每臺計算機科學家需要知道的關於浮點型」另一個人。或者,也許誰想要使用非浮點類型和儘可能多的sigfig。 –
好的 - 我知道它已經與此有關,但我不知道替代方案。我很少有無花果無花果,但我不知道如何做到這一點? – doublefelix
查看'decimal'模塊,它允許您設置所需的精度。 –