C#のMath.Floor()メソッドとは?使い方とサンプルコードを解説
C#のMath.Floor()メソッドは、指定された数値以下で最大の整数値を返すメソッドです。正の数だけでなく負の数にも対応しており、負の数の場合はより小さい整数方向へ丸められる点が特徴です。
構文
public static decimal Floor(decimal val); public static double Floor(double val);
1つ目の構文では引数 val に decimal 型の数値を指定し、戻り値も decimal 型になります。2つ目の構文では double 型の数値を指定し、戻り値は double 型です。扱うデータの型に応じて、適切なオーバーロードを選択して使用します。
使用例:decimal型の場合
まずは decimal 型の値に対して Math.Floor() メソッドを使用する例を見てみましょう。
using System;
public class Demo {
public static void Main(){
decimal val1 = 7.10M;
decimal val2 = -79.89M;
Console.WriteLine("Result = " + Math.Floor(val1));
Console.WriteLine("Result = " + Math.Floor(val2));
}
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
Result = 7 Result = -80
7.10M は 7 に丸められ、負の数である -79.89M は -80 になっています。Math.Floor() は常に「元の値以下で最大の整数」を返すため、負の数ではより小さい整数方向へ丸められる点に注意してください。
使用例:double型の場合
続いて、double 型の値に対して Math.Floor() メソッドを使用する例を紹介します。
using System;
public class Demo {
public static void Main(){
double val1 = 8.9;
double val2 = 88.10;
double val3 = -31.98;
Console.WriteLine("Result = " + Math.Floor(val1));
Console.WriteLine("Result = " + Math.Floor(val2));
Console.WriteLine("Result = " + Math.Floor(val3));
}
}
出力結果
このコードを実行すると、以下の出力が得られます。
Result = 8 Result = 88 Result = -32
8.9 → 8、88.10 → 88、-31.98 → -32 となり、いずれの場合も「元の値以下で最大の整数値」が返されていることが確認できます。
まとめ
Math.Floor() メソッドは、指定した数値以下の最大の整数値を返す静的メソッドで、decimal 型と double 型の2種類のオーバーロードが用意されています。負の数に対しては小さい方向へ丸められるため、単純な切り捨てとは挙動が異なることに注意しましょう。端数処理を行う際は、四捨五入を行う Math.Round() や、0 の方向へ丸める Math.Truncate() との違いも理解しておくと、より適切に使い分けができます。
-
C#のMath.Exp()メソッドの使い方を徹底解説!eの累乗計算と特殊値の挙動
C#のMath.Exp()メソッドは、自然対数の底「e」(ネイピア数、約2.71828)を指定した値で累乗した結果を返すメソッドです。数学的な指数関数の計算が必要な場面で活用されます。構文public static double Exp (double val);引数 val には、eの累乗の指数となる倍精度浮動小数点数(double型)を指定します。戻り値もdouble型です。特殊な値が渡された場合の挙動NaN(非数)またはPositiveInfinity(正の無限大)を渡した場合 → その値がそのまま返されます。NegativeInfinity(負の無限大)を渡した場合 → 0 が返されま
-
C#のMath.DivRem()メソッドの使い方を徹底解説!商と余りを同時に取得する方法
C#のMath.DivRem()メソッドは、2つの数値の除算を行って商(quotient)を返すとともに、余り(remainder)をoutパラメータとして受け取ることができる便利なメソッドです。通常、商と余りの両方を求めるには「/」演算子と「%」演算子を別々に使う必要がありますが、このメソッドを使えば一度の呼び出しで両方の結果を取得できます。構文public static int DivRem(int dividend, int divisor, out int remainder); public static long DivRem(long dividend, long divisor