質問するログイン新規登録

回答編集履歴

2

追記

2018/10/11 06:55

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -27,4 +27,13 @@
27
27
  ValueError: math domain error
28
28
  >>> math.log(0 + epsilon)
29
29
  -36.04365338911715
30
- ```
30
+ ```
31
+
32
+ > **sys.float_info**
33
+ float 型に関する情報を保持している 構造体シーケンス です。
34
+ ...中略...
35
+ |属性|float.hのマクロ|説明|
36
+ |:--|:--|:--|
37
+ |epsilon|DBL_EPSILON|1と、その次の表現可能なfloat値の差|
38
+
39
+ 引用元: [Python3.6.5ドキュメント » Python 標準ライブラリ » sys](https://docs.python.jp/3/library/sys.html#sys.float_info)

1

追記

2018/10/11 06:55

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -13,4 +13,18 @@
13
13
  True
14
14
  ```
15
15
 
16
- 事実上 0 と比較すれば、よほどギリギリの値でなければ判別できるような気がします。
16
+ 事実上 0 と比較すれば判別できるような気がします。
17
+ ```Python
18
+ >>> import sys
19
+ >>>
20
+ >>> epsilon = sys.float_info.epsilon
21
+ >>> epsilon
22
+ 2.220446049250313e-16
23
+ >>>
24
+ >>> math.log(0)
25
+ Traceback (most recent call last):
26
+ File "<stdin>", line 1, in <module>
27
+ ValueError: math domain error
28
+ >>> math.log(0 + epsilon)
29
+ -36.04365338911715
30
+ ```