【C#】計算した値が整数かどうかを確認する方法

整数かどうか判定する方法について書きます。AtCoder ABC133_B問題の様に、平方根を計算させて、その数字が整数かどうかを確認する場合に使用します。このときは、double型だったのですが、これが整数であるかどうかをチェックしました。

atcoder.jp

コード

using System;

namespace Practice
{
    class Program
    {
        static void Main(string[] args)
        {

            double d = Math.Sqrt(50);
            Console.WriteLine("doubble : " + d);
            Console.WriteLine("int     : " + (int)d);

        }
    }
}
doubble : 7.07106781186548
int     : 7

doubleをintでキャストすると、当然ですが整数になります。つまり、intによるキャスト前とキャスト後が同じ値であればそれは整数であると言えます。

よって下記が成立すれば、平方根の値は整数であると言えます。

if((int)d ==d)