1

list関数は、値を含む を返しfloatます。このリストをプロットすると、一部のfloat値が等しいことがわかります-1.#IND-1.#INDまた、これらの値のタイプも確認しました。そして、それらもfloatタイプです。-1.#INDしかし、どうすればこの値を理解できますか? それらは何を表し、何を表していますか?

4

1 に答える 1

3

-1.#IND不定、解のない浮動小数点方程式の結果を意味します。他のプラットフォームではNaN、'not a number' を意味する代わりに、-1.#INDWindows に固有です。Linux 上の Python 2.5 では、次のようになります。

>>> 1e300 * 1e300 * 0
-nan

これは、Windows プラットフォームの python バージョン 2.5 以前でのみ見つかります。コードはpython 2.6float()で改善され、一貫してそのような結果に使用されます。主に、実際のインスタンスに戻って元に戻す方法がなかったためです。float('nan')1.#INF-1.#INDfloat()

>>> repr(inf)
'1.#INF'
>>> float(_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 1.#INF
>>> repr(nan)
'-1.#IND'
>>> float(_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -1.#IND

バージョン 2.6 以降では、これはすべてクリーンアップされ、一貫性が保たれています。

>>> 1e300 * 1e300 * 0
nan
>>> 1e300 * 1e300
inf
>>> 1e300 * 1e300 * -1
-inf
于 2013-01-14T16:42:33.910 に答える