回答編集履歴

5

個数の和を追加

2020/07/07 11:20

投稿

Penpen7
Penpen7

スコア698

test CHANGED
@@ -76,6 +76,8 @@
76
76
 
77
77
  sum=0
78
78
 
79
+ sum_d = 0
80
+
79
81
  for i in tiedosto.readlines():
80
82
 
81
83
  # 改行コード除去
@@ -110,6 +112,10 @@
110
112
 
111
113
  print(i,"の数字の部分は",len(strint), end="個あって、")
112
114
 
115
+
116
+
117
+ sum_d += len(strint)
118
+
113
119
 
114
120
 
115
121
  # 小数点以下の桁数がAX_DIGIT_AFTER_POINT以上の場合, 余分な分を文字列から除去する
@@ -142,11 +148,15 @@
142
148
 
143
149
 
144
150
 
145
- return strint_to_float(str(sum), MAX_DIGIT_AFTER_POINT)
151
+ return strint_to_float(str(sum), MAX_DIGIT_AFTER_POINT), sum_d
146
152
 
147
153
  if __name__ == "__main__":
148
154
 
149
- print("総和は",desimaaliluku())
155
+ _sum, sum_d = desimaaliluku()
156
+
157
+ print("総和は",_sum, "数字の部分の個数の和は", sum_d)
158
+
159
+
150
160
 
151
161
  ```
152
162
 
@@ -178,7 +188,7 @@
178
188
 
179
189
  1.23456789 の数字の部分は 9個あって、切り捨てると 1.23
180
190
 
181
- 総和は 1863016.47
191
+ 総和は 1863016.47 数字の部分の個数の和は 113
182
192
 
183
193
  ```
184
194
 
@@ -254,42 +264,42 @@
254
264
 
255
265
 
256
266
 
257
- 3.14 の数字の部分は 3個あって、切り捨てると 3.1400000000
267
+ 3.14 の数字の部分は 3個あって、切り捨てると 3.14
258
-
268
+
259
- 2.692038 の数字の部分は 7個あって、切り捨てると 2.6920380000
269
+ 2.692038 の数字の部分は 7個あって、切り捨てると 2.69
260
-
270
+
261
- 0.009 の数字の部分は 4個あって、切り捨てると 0.0090000000
271
+ 0.009 の数字の部分は 4個あって、切り捨てると 0.00
262
-
272
+
263
- 69.96 の数字の部分は 4個あって、切り捨てると 69.9600000000
273
+ 69.96 の数字の部分は 4個あって、切り捨てると 69.96
264
-
274
+
265
- 1.337 の数字の部分は 4個あって、切り捨てると 1.3370000000
275
+ 1.337 の数字の部分は 4個あって、切り捨てると 1.33
266
-
276
+
267
- 715517.01 の数字の部分は 8個あって、切り捨てると 715517.0100000000
277
+ 715517.01 の数字の部分は 8個あって、切り捨てると 715517.01
268
-
278
+
269
- 888888.888888888888 の数字の部分は 18個あって、切り捨てると 888888.8888888888
279
+ 888888.888888888888 の数字の部分は 18個あって、切り捨てると 888888.88
270
-
280
+
271
- 666.66666 の数字の部分は 8個あって、切り捨てると 666.6666600000
281
+ 666.66666 の数字の部分は 8個あって、切り捨てると 666.66
272
-
282
+
273
- 234242.2342323670923842042890342803 の数字の部分は 34個あって、切り捨てると 234242.2342323670
283
+ 234242.2342323670923842042890342803 の数字の部分は 34個あって、切り捨てると 234242.23
274
-
284
+
275
- 23623.346346347 の数字の部分は 14個あって、切り捨てると 23623.3463463470
285
+ 23623.346346347 の数字の部分は 14個あって、切り捨てると 23623.34
276
-
286
+
277
- 1.23456789 の数字の部分は 9個あって、切り捨てると 1.2345678900
287
+ 1.23456789 の数字の部分は 9個あって、切り捨てると 1.23
278
-
288
+
279
- 1. の数字の部分は 1個あって、切り捨てると 1.0000000000
289
+ 1. の数字の部分は 1個あって、切り捨てると 1.00
280
-
290
+
281
- 100005. の数字の部分は 6個あって、切り捨てると 100005.0000000000
291
+ 100005. の数字の部分は 6個あって、切り捨てると 100005.00
282
-
292
+
283
- 1. の数字の部分は 1個あって、切り捨てると 1.0000000000
293
+ 1. の数字の部分は 1個あって、切り捨てると 1.00
284
-
294
+
285
- 0000000. の数字の部分は 7個あって、切り捨てると 0000000.0000000000
295
+ 0000000. の数字の部分は 7個あって、切り捨てると 0000000.00
286
-
296
+
287
- 555533.100059958989130 の数字の部分は 21個あって、切り捨てると 555533.1000599589
297
+ 555533.100059958989130 の数字の部分は 21個あって、切り捨てると 555533.10
288
-
298
+
289
- 55555555555555. の数字の部分は 14個あって、切り捨てると 55555555555555.0000000000
299
+ 55555555555555. の数字の部分は 14個あって、切り捨てると 55555555555555.00
290
-
300
+
291
- .999999 の数字の部分は 6個あって、切り捨てると 0.9999990000
301
+ .999999 の数字の部分は 6個あって、切り捨てると 0.99
292
-
302
+
293
- 総和は 55555558074112.6187924517
303
+ 総和は 55555558074112.56 数字の部分の個数の和は 169
294
304
 
295
305
  ```

4

結果追加

2020/07/07 11:20

投稿

Penpen7
Penpen7

スコア698

test CHANGED
@@ -209,3 +209,87 @@
209
209
  1.23
210
210
 
211
211
  ```
212
+
213
+ 10桁まで取り、整数も入れた場合
214
+
215
+ ```txt
216
+
217
+ 入力した値
218
+
219
+ 3.14
220
+
221
+ 2.692038
222
+
223
+ 0.009
224
+
225
+ 69.96
226
+
227
+ 1.337
228
+
229
+ 715517.01
230
+
231
+ 888888.888888888888
232
+
233
+ 666.66666
234
+
235
+ 234242.2342323670923842042890342803
236
+
237
+ 23623.346346347
238
+
239
+ 1.23456789
240
+
241
+ 1
242
+
243
+ 100005
244
+
245
+ 1.
246
+
247
+ 0000000
248
+
249
+ 555533.100059958989130
250
+
251
+ 55555555555555
252
+
253
+ .999999
254
+
255
+
256
+
257
+ 3.14 の数字の部分は 3個あって、切り捨てると 3.1400000000
258
+
259
+ 2.692038 の数字の部分は 7個あって、切り捨てると 2.6920380000
260
+
261
+ 0.009 の数字の部分は 4個あって、切り捨てると 0.0090000000
262
+
263
+ 69.96 の数字の部分は 4個あって、切り捨てると 69.9600000000
264
+
265
+ 1.337 の数字の部分は 4個あって、切り捨てると 1.3370000000
266
+
267
+ 715517.01 の数字の部分は 8個あって、切り捨てると 715517.0100000000
268
+
269
+ 888888.888888888888 の数字の部分は 18個あって、切り捨てると 888888.8888888888
270
+
271
+ 666.66666 の数字の部分は 8個あって、切り捨てると 666.6666600000
272
+
273
+ 234242.2342323670923842042890342803 の数字の部分は 34個あって、切り捨てると 234242.2342323670
274
+
275
+ 23623.346346347 の数字の部分は 14個あって、切り捨てると 23623.3463463470
276
+
277
+ 1.23456789 の数字の部分は 9個あって、切り捨てると 1.2345678900
278
+
279
+ 1. の数字の部分は 1個あって、切り捨てると 1.0000000000
280
+
281
+ 100005. の数字の部分は 6個あって、切り捨てると 100005.0000000000
282
+
283
+ 1. の数字の部分は 1個あって、切り捨てると 1.0000000000
284
+
285
+ 0000000. の数字の部分は 7個あって、切り捨てると 0000000.0000000000
286
+
287
+ 555533.100059958989130 の数字の部分は 21個あって、切り捨てると 555533.1000599589
288
+
289
+ 55555555555555. の数字の部分は 14個あって、切り捨てると 55555555555555.0000000000
290
+
291
+ .999999 の数字の部分は 6個あって、切り捨てると 0.9999990000
292
+
293
+ 総和は 55555558074112.6187924517
294
+
295
+ ```

3

main追加

2020/07/06 21:41

投稿

Penpen7
Penpen7

スコア698

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  MAX_DIGIT_AFTER_POINT = 2
68
68
 
69
-
69
+
70
70
 
71
71
  # MAX_DIGIT_AFTER_POINTが0以上か確認
72
72
 
@@ -82,13 +82,13 @@
82
82
 
83
83
  i = i.strip()
84
84
 
85
-
85
+
86
86
 
87
87
  # iに不正な値が入力された場合, 強制終了
88
88
 
89
89
  assert(is_float(i))
90
90
 
91
-
91
+
92
92
 
93
93
  # .が見つからなかった場合(整数), .を付加し、以降では小数として扱う
94
94
 
@@ -96,13 +96,13 @@
96
96
 
97
97
  i+="."
98
98
 
99
-
99
+
100
100
 
101
101
  # 小数点以下の桁数を計算
102
102
 
103
103
  digit_after_point = len(i)-1-i.find(".")
104
104
 
105
-
105
+
106
106
 
107
107
  # コンマを除去し, 文字列型に整数を格納する
108
108
 
@@ -110,7 +110,7 @@
110
110
 
111
111
  print(i,"の数字の部分は",len(strint), end="個あって、")
112
112
 
113
-
113
+
114
114
 
115
115
  # 小数点以下の桁数がAX_DIGIT_AFTER_POINT以上の場合, 余分な分を文字列から除去する
116
116
 
@@ -118,7 +118,7 @@
118
118
 
119
119
  strint = strint[:-(digit_after_point-MAX_DIGIT_AFTER_POINT)]
120
120
 
121
-
121
+
122
122
 
123
123
  # 小数点以下の桁数がMAX_DIGIT_AFTER_POINT未満の場合, 足りない桁数分0を末尾に入れる
124
124
 
@@ -126,13 +126,13 @@
126
126
 
127
127
  strint += "0"*(MAX_DIGIT_AFTER_POINT-digit_after_point)
128
128
 
129
-
129
+
130
130
 
131
131
  # 切り捨てた結果を表示
132
132
 
133
133
  print("切り捨てると",strint_to_float(strint, MAX_DIGIT_AFTER_POINT))
134
134
 
135
-
135
+
136
136
 
137
137
  # ファイルに書き込み
138
138
 
@@ -140,10 +140,14 @@
140
140
 
141
141
  sum += int(strint)
142
142
 
143
-
143
+
144
144
 
145
145
  return strint_to_float(str(sum), MAX_DIGIT_AFTER_POINT)
146
146
 
147
+ if __name__ == "__main__":
148
+
149
+ print("総和は",desimaaliluku())
150
+
147
151
  ```
148
152
 
149
153
 
@@ -174,7 +178,7 @@
174
178
 
175
179
  1.23456789 の数字の部分は 9個あって、切り捨てると 1.23
176
180
 
177
- '1863016.47'
181
+ 総和は 1863016.47
178
182
 
179
183
  ```
180
184
 

2

説明追記2

2020/07/06 21:25

投稿

Penpen7
Penpen7

スコア698

test CHANGED
@@ -2,12 +2,18 @@
2
2
 
3
3
  こちらでもデバッグしましたが、入力された値によっては間違えた結果が出るかもしれないので、確認してください。
4
4
 
5
- 指数表示には対応できていないです。
5
+
6
6
 
7
7
  質問のテストケースは大丈夫そうです。
8
8
 
9
9
  誤差を防ぐため、小数ではなく整数で足し算を行うようにしました。
10
10
 
11
+
12
+
13
+ desimaalilukuの返り値は文字列型なので, 小数で扱いたい場合はfloatに変換してください。
14
+
15
+ 指数表示には対応できていないです。(ちょっといじればできそう)
16
+
11
17
  間違いがあればご指摘いただければ幸いです。
12
18
 
13
19
 
@@ -136,7 +142,7 @@
136
142
 
137
143
 
138
144
 
139
- return float(strint_to_float(str(sum), MAX_DIGIT_AFTER_POINT))
145
+ return strint_to_float(str(sum), MAX_DIGIT_AFTER_POINT)
140
146
 
141
147
  ```
142
148
 
@@ -168,7 +174,7 @@
168
174
 
169
175
  1.23456789 の数字の部分は 9個あって、切り捨てると 1.23
170
176
 
171
- 1863016.47
177
+ '1863016.47'
172
178
 
173
179
  ```
174
180
 

1

説明追記

2020/07/06 21:18

投稿

Penpen7
Penpen7

スコア698

test CHANGED
@@ -2,8 +2,14 @@
2
2
 
3
3
  こちらでもデバッグしましたが、入力された値によっては間違えた結果が出るかもしれないので、確認してください。
4
4
 
5
+ 指数表示には対応できていないです。
6
+
5
7
  質問のテストケースは大丈夫そうです。
6
8
 
9
+ 誤差を防ぐため、小数ではなく整数で足し算を行うようにしました。
10
+
11
+ 間違いがあればご指摘いただければ幸いです。
12
+
7
13
 
8
14
 
9
15
  ```python