小数を整数化する
C#で小数を整数に変換する方法はいくつかあります。代表的な方法としては、Math.Floor
、Math.Ceiling
、Math.Round
、キャストを使用する方法があります。それぞれの方法をサンプルコードとして示します。
using System;
class Program
{
static void Main()
{
double decimalNumber = 12.5;
// 1. Math.Floor: 小数点以下を切り捨てる
int floorResult = (int)Math.Floor(decimalNumber);
Console.WriteLine("Math.Floor: " + floorResult); // 出力: 12
// 2. Math.Ceiling: 小数点以下を切り上げる
int ceilingResult = (int)Math.Ceiling(decimalNumber);
Console.WriteLine("Math.Ceiling: " + ceilingResult); // 出力: 13
// 3-1. Math.Round (デフォルトのMidpointRounding.ToEven): 最近接偶数に丸める
int roundResult1 = (int)Math.Round(decimalNumber);
Console.WriteLine("Math.Round1: " + roundResult1); // 出力: 12
// 3-2. Math.Round (MidpointRounding.AwayFromZero): 0.5を切り上げる
int roundResult2 = (int)Math.Round(decimalNumber, MidpointRounding.AwayFromZero);
Console.WriteLine("Math.Round2: " + roundResult2); // 出力: 13
// 4. キャスト: 小数点以下を単純に切り捨てる
int castResult = (int)decimalNumber;
Console.WriteLine("キャスト: " + castResult); // 出力: 12
}
}
このコードを実行すると、次のような出力が得られます:
それぞれのメソッドの説明は以下の通りです:
Math.Floor: 12
Math.Ceiling: 13
Math.Round1: 12
Math.Round2: 13
キャスト: 12
- Math.Floor:
12.5
を切り捨てて12
になります。 - Math.Ceiling:
12.5
を切り上げて13
になります。 - Math.Round1 (デフォルト):
12.5
は「最近接偶数への丸め(Banker’s Rounding)」によって、12
になります(12が偶数なので)。 - Math.Round2 (MidpointRounding.AwayFromZero):
12.5
は四捨五入され、13
になります。 - キャスト:
12.5
は単純に小数部分が切り捨てられ、12
になります。
ディスカッション
コメント一覧
まだ、コメントがありません