回答編集履歴

2

追記

2018/04/05 04:11

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  2018/04/05追記
30
30
 
31
- 質問文の追記ソースコードは変数:`average`を`int`型で宣言しているため、`data`が`{1,2}`の時に算術平均が1となり正しく算出されません。
31
+ 質問文の追記ソースコードは変数:`average`と変数:sumを`int`型で宣言しているため、`data`が`{1,2}`の時に算術平均が1となり正しく算出されません。
32
32
 
33
33
  変数を`double`型もしくは[java.math.BigDecimal](https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html)クラスで宣言するか以下のコードでも可能です。
34
34
 

1

算術平均の算出に関して

2018/04/05 04:10

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -21,3 +21,37 @@
21
21
  見やすさと初学者さんへのわかりやすさもソースコードの一つの指標ですが、
22
22
 
23
23
  個人的には**コードがテストしやすいかどうか(テスト容易性)**も重要なポイントではと個人的に思います。
24
+
25
+
26
+
27
+ ---
28
+
29
+ 2018/04/05追記
30
+
31
+ 質問文の追記ソースコードは変数:`average`を`int`型で宣言しているため、`data`が`{1,2}`の時に算術平均が1となり正しく算出されません。
32
+
33
+ 変数を`double`型もしくは[java.math.BigDecimal](https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html)クラスで宣言するか以下のコードでも可能です。
34
+
35
+
36
+
37
+ ```Java
38
+
39
+ import java.util.stream.IntStream;
40
+
41
+
42
+
43
+ public class A120426 {
44
+
45
+ public static void main(String[] args) {
46
+
47
+ int[] data = { 1, 2 };
48
+
49
+ double average = IntStream.of(data).average().orElseThrow(null);
50
+
51
+ System.out.println(average);
52
+
53
+ }
54
+
55
+ }
56
+
57
+ ```