2020年09月19日
川俣晶の縁側ソフトウェアC# コーディング How To total 814 count

【入門級】整数の平均値を実数で計算したい

Written By: 川俣 晶連絡先

整数の平均値を実数で計算したい §

 1,2,3,4という整数型の配列の平均値を計算して2.5という結果が欲しいとします。しかし、普通に何も考えないで全ての要素を足してから個数で割ると、結果は整数型になってしまい、小数点以下は消えます。

 一度全ての数値を実数型に変換してから計算すれば良いのでしょうか?

 実はLINQのAverageメソッドは整数のシーケンスを入力にしても、実数を返してくれるという特徴があるので、これを使うと何も考えなくても実数の平均値が得られます。

罠の数々 §

  • 逆にいえば、整数の結果で良くても実数が返ってきてしまう。型の変換に注意しよう

参考リンク §

Enumerable.Average メソッド

 Avarageメソッドが実際にどんな型を返してくれるのか、上のリンクから確認しておこう。

 バリエーションは多いぞ。

リポジトリ §

https://github.com/autumn009/cshowto

Average §

using System;

using System.Linq;

class Program

{

    static void Main()

    {

        // 整数の配列

        int[] ar = { 1, 2, 3, 4 };

        // 実はavgはdouble型

        var avg = ar.Average();

        Console.WriteLine($"Average is {avg}");

    }

}

実行結果

Average is 2.5

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?