回答編集履歴
2
誤字
test
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
num18 = 1 + 0.000000000000000001
|
70
70
|
|
71
|
-
print(type(num1))
|
71
|
+
print(type(num18))
|
72
72
|
|
73
73
|
# 1.0
|
74
74
|
|
1
誤字
test
CHANGED
@@ -12,11 +12,11 @@
|
|
12
12
|
|
13
13
|
```ここに言語を入力
|
14
14
|
|
15
|
-
num15 = 1 + 0.00000000000000
|
15
|
+
num15 = 1 + 0.000000000000001
|
16
16
|
|
17
17
|
#小数点以下が15桁
|
18
18
|
|
19
|
-
num16 = 1 + 0.000000000000000
|
19
|
+
num16 = 1 + 0.0000000000000001
|
20
20
|
|
21
21
|
#小数点以下が16桁
|
22
22
|
|
@@ -32,9 +32,11 @@
|
|
32
32
|
|
33
33
|
```
|
34
34
|
|
35
|
-
なのでDecimalモジュールを使います。
|
36
35
|
|
36
|
+
|
37
|
+
なのでDecimalFieldやDecimalモジュールを使います。
|
38
|
+
|
37
|
-
decimalは数字で小数点以下を
|
39
|
+
decimalは数字で長い小数点以下を計算すると誤差が出るから文字列の様に扱って正しく計算して表示できるようにするものです。
|
38
40
|
|
39
41
|
```ここに言語を入力
|
40
42
|
|
@@ -44,8 +46,36 @@
|
|
44
46
|
|
45
47
|
|
46
48
|
|
47
|
-
num1
|
49
|
+
num17 = Decimal("0.00000000000000001")
|
48
50
|
|
51
|
+
#小数点以下17桁
|
52
|
+
|
49
|
-
|
53
|
+
num17 = 1 + num17
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
print(num17)
|
58
|
+
|
59
|
+
# 1.000000000000000010000000000
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
print(type(num17))
|
64
|
+
|
65
|
+
#<class 'decimal.Decimal'>
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
num18 = 1 + 0.000000000000000001
|
70
|
+
|
71
|
+
print(type(num1))
|
72
|
+
|
73
|
+
# 1.0
|
74
|
+
|
75
|
+
# <class 'float'>
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
#丸まってしまうのはfloat型だからです。type()で確認してみるとどこで間違っているか分かりやすいかもしれません。
|
50
80
|
|
51
81
|
```
|