整数に近い整数を間違えるコードを避けたいと思います。例えば、58106601358565889はその平方根241,053,109.00000001659385359763188として持っていますが、私は次のブールテストを使用する場合、58106601358565889は、それが完璧な四角だったという考えに私をだまさ:、大きな整数をPythonで近い整数から区別する
a = 58106601358565889
b = math.sqrt(a)
print(b == int(b))
精度が必ずしも問題ではありませんかの理由はI近く整数対真をテストするためのより良い方法だろう何
print(a == b**2)
:再チェック、私は適切な(偽)の結論を得ますか? math.sqrtはコード内の別の定義に埋め込まれています。可能であれば、平方根の平方根のチェックを挿入する必要はありません。これは良い質問ではない場合、私はお詫び申し上げます。私はPythonの初心者です。
「true」を返す必要がありますか? – styvane
私の理解が正しい場合は、Falseを返します。 – Backtrack
最初のプリント(b == int(b))falseになりたい。 – Jeptha