2020年09月19日
川俣晶の縁側ソフトウェアC# コーディング How Tototal 811 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

Facebook

COOL C# CREW

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

C#ハウツー: 逆引き入門・こんな機能はどう書くの?
キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
09月
20日
【入門級】平均値を計算するAverageメソッドは必ずしも速くない
3days 0 count
total 928 count
【C# コーディング How To】の前のコンテンツ
2020年
09月
18日
【入門級】時間の差分を計算する
3days 0 count
total 1011 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20200919093929
サイトの表紙【C# コーディング How To】の表紙【C# コーディング How To】のコンテンツ全リスト 【C# コーディング How To】の入手全リスト 【C# コーディング How To】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.