少数を切り捨てるには「Math.Truncate」または「Math.Floor」メソッドを使用します。
少数の切り捨て方法
「Math.Truncate」メソッドと「Math.Floor」メソッドは 引数に少数を渡すと、小数第一位で切り捨てした値を返します。using System;
切り捨て結果 = Math.Truncate(少数);
using System;
切り捨て結果 = Math.Floor(少数);
サンプルコード
using System;
// 0.987654321 を Math.Truncate で切り捨て -> 結果 = 0
double truncateResult = Math.Truncate(0.987654321);
System.Console.WriteLine($"Math.Truncate(0.987654321d)の結果={truncateResult}");
// 0.987654321 を Math.Floor で切り捨て -> 結果 = 0
double floorResult = Math.Floor(0.987654321d);
System.Console.WriteLine($"Math.Floor(0.987654321d)の結果={floorResult}");
- 4行目: 0.987654321 を Math.Floor で切り捨てしています。結果は 0 です。
- 8行目: 0.987654321 を Math.Truncate で切り捨てしています。結果は 0 です。

Math.Truncate と Math.Floor の違い
マイナス値を切り捨てるとき Floor は 0 から 遠ざかり、 Truncate は 0 に近づきます。プラス値の場合、同じ結果が返ります。元の値 | Truncateの結果 | Floorの結果 |
---|---|---|
0.1 | 0 | 0 |
0.9 | 0 | 0 |
1.1 | 1 | 1 |
1.9 | 1 | 1 |
-0.1 | 0 | -1 |
-0.9 | 0 | -1 |
-1.1 | -1 | -2 |
-1.9 | -1 | -2 |
桁数を指定して切り捨て
Math.Truncate メソッドと Math.Floor メソッドは桁数の指定に対応していません。 小数第二位で切り捨てする場合は「切り捨て前に 10 を 掛け、切り捨て後に 10 で 割る」等をして計算します。小数第二位で切り捨て(n.nnn -> n.n にする)
切り捨て結果 = Math.Truncate(少数 * 10) / 10;
切り捨て結果 = Math.Floor(少数 * 10) / 10;
小数第三位で切り捨て(n.nnn -> n.nn にする)
切り捨て結果 = Math.Truncate(少数 * 100) / 100;
切り捨て結果 = Math.Floor(少数 * 100) / 100;
サンプルコード
using System;
// Math.Truncate を使用し、0.987654321 を少数第二位で切り捨て -> 結果 = 0.9
double truncateResult = Math.Truncate(0.987654321d * 10) / 10;
System.Console.WriteLine($"0.987654321d を少数第二位で切り捨てた結果={truncateResult}");
// Math.Floor を使用し、0.987654321 を少数第三位で切り捨て -> 結果 = 0.98
double floorResult = Math.Floor(0.987654321d * 100) / 100;
System.Console.WriteLine($"0.987654321d を少数第三位で切り捨てた結果={floorResult}");
- 4行目: 0.987654321 を 少数第二位で切り捨てしています。結果は 0.9 です。
- 8行目: 0.987654321 を 少数第三位 で切り捨てしています。結果は 0.98 です。
切り捨てしたい桁数が変動する場合
Math.Pow メソッドを組み合わせ、切り捨てる桁数を変更できるようにします。Math.Pow メソッドは引数に 「基数と指数」 を渡すと、「累乗した数」を返します。切り捨て結果 = Math.Truncate(少数 * Math.Pow(10, 切り捨てたい桁数)) / Math.Pow(10, 切り捨てたい桁数);
切り捨て結果 = Math.Floor(少数 * Math.Pow(10, 切り捨てたい桁数)) / Math.Pow(10, 切り捨てたい桁数);
検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.9.3
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.906 Experience: Windows Feature Experience Pack 120.2212.551.0