演算

[C#] 数値を切り捨てする(Math.Floor、Math.Truncate)

2021年5月19日

数値を切り捨てするには、Math.FloorまたはMath.Truncateを使用します。

FloorとTruncateの違い

FloorとTruncateは正数(プラス値)の場合は結果は変わりませんが、
負数(マイナス値)の場合に以下のように結果が変わります。

  • Math.Floor:より小さい値へ向けて切捨てをする
    (例)-123.45 → -124
  • Math.Truncate:小数値を取り除く事で切捨てをする
    (例)-123.45 → -123

Math.Floorによる切捨て

例)Math.Floorによる切捨てサンプル

//元の数値
double a = 123.987;
double b = -123.987;

//小数点以下を切り捨てる
double x = Math.Floor(a);
x → 123

//小数第2位以下を切り捨てる
double x = Math.Floor(a*10)/10;
x → 123.9

//小数第3位以下を切り捨てる
double x = Math.Floor(a*100)/100;
x → 123.98

//小数点以下を切り捨てる(マイナス値)
double x = Math.Floor(b);
x → -124

Math.Truncateによる切捨て

例)Math.Truncateによる切捨てサンプル

//元の数値
double a = 123.987;
double b = -123.987;

//小数点以下を切り捨てる
double x = Math.Truncate(a);
x → 123

//小数第2位以下を切り捨てる
double x = Math.Truncate(a*10)/10;
x → 123.9

//小数第3位以下を切り捨てる
double x = Math.Truncate(a*100)/100;
x → 123.98

//小数点以下を切り捨てる(マイナス値)
double x = Math.Truncate(b);
x → -123

備考

  • 数値の切捨てはMath.Foorまたは、Math.Truncateを使用します。
  • 正数の場合は結果に違いはなく、負数の場合に結果に違いが生じます。

関連記事

-演算
-,