for a in np.arange(1, 10, 0.1):
for b in np.arange(1, 10, 0.1):
if a * 2 + b * 3 == 18.00:
print(a , b)
代碼如上,理論上整數都是有結果的,但允許有小數后就沒有結果了
uj5u.com熱心網友回復:
浮點型別的精度問題,計算機存盤浮點數有誤差,比較浮點數的時候通常不直接用 == 比較。另外 python 中提供了計算高精度方法,比如:
import numpy as np
from fractions import Fraction
for a in np.arange(1,10,Fraction(1,10)):
for b in np.arange(1,10,Fraction(1,10)):
if a*2+b*2 == Fraction(18):
print(float(a),float(b))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/133196.html
