using System;
class Test1
{
static void Main()
{
Console.WriteLine("---start---");
//DoRoundTest1();
//DoCeilingTest1();
//DoTruncTest1();
DoFloorTest1();
Console.WriteLine("---end---");
}
// 四捨五入テスト
static void DoRoundTest1() {
double e = 2.7182;
// 小数点第1位を四捨五入して、整数値で表示する。-> 3
Console.WriteLine(e.ToString("F0"));
// 小数点第2位を四捨五入して、第1まで表示する。-> 2.7
Console.WriteLine(e.ToString("F1"));
// 小数点第3位を四捨五入して、第2位まで表示する。-> 2.72
Console.WriteLine(e.ToString("F2"));
// 小数点第4位を四捨五入して、第3位まで表示する。-> 2.718
Console.WriteLine(e.ToString("F3"));
// 小数点第1位を四捨五入して、整数値で表示する。-> 3
Console.WriteLine(Math.Round(e, MidpointRounding.AwayFromZero));
// 小数点第2位を四捨五入して、第1まで表示する。-> 2.7
Console.WriteLine(Math.Round(e, 1, MidpointRounding.AwayFromZero));
// 小数点第3位を四捨五入して、第2まで表示する。-> 2.72
Console.WriteLine(Math.Round(e, 2, MidpointRounding.AwayFromZero));
// 小数点第4位を四捨五入して、第3まで表示する。-> 2.718
Console.WriteLine(Math.Round(e, 3, MidpointRounding.AwayFromZero));
}
// 切上げテスト
static void DoCeilingTest1() {
double e = 2.7182;
// 少数点第1位を切上げして、整数値で表示する -> 3
Console.WriteLine(Math.Ceiling(e));
// 少数点第2位を切上げして、第1まで表示する。 -> 2.8
Console.WriteLine(Math.Ceiling((e * 10)) / 10);
// 少数点第3位を切上げして、第2まで表示する。 -> 2.72
Console.WriteLine(Math.Ceiling((e * 100)) / 100);
// 少数点第4位を切上げして、第3まで表示する。 -> 2.719
Console.WriteLine(Math.Ceiling((e * 1000)) / 1000);
}
// 切捨てテスト
// 負数は0に近づける
static void DoTruncTest1() {
double e = 2.7182;
// 少数点第1位を切捨てして、整数値で表示する -> 2
Console.WriteLine(Math.Truncate(e));
// 少数点第2位を切捨てして、第1まで表示する。 -> 2.7
Console.WriteLine(Math.Truncate((e * 10)) / 10);
// 少数点第3位を切捨てして、第2まで表示する。 -> 2.71
Console.WriteLine(Math.Truncate((e * 100)) / 100);
// 少数点第4位を切捨てして、第3まで表示する。 -> 2.71
Console.WriteLine(Math.Truncate((e * 1000)) / 1000);
e *= -1;
// 少数点第2位を切捨てして、第1まで表示する。 -> -2.7
Console.WriteLine(Math.Truncate((e * 10)) / 10);
// 少数点第3位を切捨てして、第2まで表示する。 -> -2.71
Console.WriteLine(Math.Truncate((e * 100)) / 100);
// 少数点第4位を切捨てして、第3まで表示する。 -> -2.71
Console.WriteLine(Math.Truncate((e * 1000)) / 1000);
}
// 切捨てテスト
// 負数は0から遠ざける
static void DoFloorTest1() {
double e = 2.7182;
// 少数点第1位を切捨てして、整数値で表示する -> 2
Console.WriteLine(Math.Floor(e));
// 少数点第2位を切捨てして、第1まで表示する。 -> 2.7
Console.WriteLine(Math.Floor((e * 10)) / 10);
// 少数点第3位を切捨てして、第2まで表示する。 -> 2.71
Console.WriteLine(Math.Floor((e * 100)) / 100);
// 少数点第4位を切捨てして、第3まで表示する。 -> 2.71
Console.WriteLine(Math.Floor((e * 1000)) / 1000);
e *= -1;
// 少数点第2位を切捨てして、第1まで表示する。 -> 2.8
Console.WriteLine(Math.Floor((e * 10)) / 10);
// 少数点第3位を切捨てして、第2まで表示する。 -> 2.72
Console.WriteLine(Math.Floor((e * 100)) / 100);
// 少数点第4位を切捨てして、第3まで表示する。 -> 2.719
Console.WriteLine(Math.Floor((e * 1000)) / 1000);
}
}