回答編集履歴

2

誤字

2018/08/17 11:48

投稿

grilled_python
grilled_python

スコア237

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

誤字

2018/08/17 11:48

投稿

grilled_python
grilled_python

スコア237

test CHANGED
@@ -12,11 +12,11 @@
12
12
 
13
13
  ```ここに言語を入力
14
14
 
15
- num15 = 1 + 0.0000000000000001
15
+ num15 = 1 + 0.000000000000001
16
16
 
17
17
  #小数点以下が15桁
18
18
 
19
- num16 = 1 + 0.00000000000000001
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
- num16 = Decimal("0.00000000000000001")
49
+ num17 = Decimal("0.00000000000000001")
48
50
 
51
+ #小数点以下17桁
52
+
49
- 1 + num16
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
  ```