teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/04/05 04:11

投稿

umyu
umyu

スコア5846

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

1

算術平均の算出に関して

2018/04/05 04:10

投稿

umyu
umyu

スコア5846

answer CHANGED
@@ -9,4 +9,21 @@
9
9
  0. dataとsampleの比較部分はforループで回すか、LouiS0616さんの回答の通り基数を掛け算して比較するという手も使えます。
10
10
 
11
11
  見やすさと初学者さんへのわかりやすさもソースコードの一つの指標ですが、
12
- 個人的には**コードがテストしやすいかどうか(テスト容易性)**も重要なポイントではと個人的に思います。
12
+ 個人的には**コードがテストしやすいかどうか(テスト容易性)**も重要なポイントではと個人的に思います。
13
+
14
+ ---
15
+ 2018/04/05追記
16
+ 質問文の追記ソースコードは変数:`average`を`int`型で宣言しているため、`data`が`{1,2}`の時に算術平均が1となり正しく算出されません。
17
+ 変数を`double`型もしくは[java.math.BigDecimal](https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html)クラスで宣言するか以下のコードでも可能です。
18
+
19
+ ```Java
20
+ import java.util.stream.IntStream;
21
+
22
+ public class A120426 {
23
+ public static void main(String[] args) {
24
+ int[] data = { 1, 2 };
25
+ double average = IntStream.of(data).average().orElseThrow(null);
26
+ System.out.println(average);
27
+ }
28
+ }
29
+ ```