回答編集履歴
1
小数の計算では誤差が出ることを追記しました
answer
CHANGED
@@ -12,6 +12,15 @@
|
|
12
12
|
(より正確には二進法で52ビットの仮数部を十進数に変換して約16桁で表示した表現)
|
13
13
|
C言語などでは、これを整数(最大64ビット)の比率で表すことができません。
|
14
14
|
|
15
|
+
小数計算は以下のように誤差が出ることに注意してください。
|
16
|
+
|
17
|
+
```python
|
18
|
+
>>> math.sqrt(2)**2
|
19
|
+
2.0000000000000004
|
20
|
+
>>> (1.0 / 49.0) * 49.0
|
21
|
+
0.9999999999999999
|
22
|
+
```
|
23
|
+
|
15
24
|
3 python3以降での分数表現
|
16
25
|
python3以降では、整数が(メモリが許す限り)無限の桁数を持つようになりました。
|
17
26
|
このため、√2(ルート2)の近似値である1.4142135623730951を6369051672525773/4503599627370496と分数で表すことができます。もちろん、数学的には正しくありません。
|
@@ -19,7 +28,7 @@
|
|
19
28
|
数学的に間違った答えを書いても意味がないと思うなら、あきらめてください。
|
20
29
|
数学的に間違っていていいので、分数で書きたいという事であれば、以下のようにして下さい。
|
21
30
|
|
22
|
-
```
|
31
|
+
```python
|
23
32
|
import math
|
24
33
|
import fractions
|
25
34
|
|