この記事では、小数を切り上げる方法について紹介しています。
こんな方にオススメの記事
- 少数の小数点以下を切り上げたい
- 小数点の第2位を切り上げたい
- 小数点以下の桁数を指定して切り上げたい
ぜひ最後まで読んでみてください。
オススメの参考書
C#の使い方が丁寧に解説しており、「基礎からしっかりと学びたい」という初心者の方にオススメの一冊です。サンプルコードも記載してあり、各章の最後に復習問題があるので理解度を確認しながら読み進めることができます。新しい C# のバージョンにも対応している書籍です。
C#で小数を切り上げるには?
Math クラスの Ceiling メソッドを使うことで小数を切り上げることができます。
メソッド | 内容 | 正数 | 負数 |
Ceiling | 大きい方向へ丸めて切り上げる | 3.1 → 4 | -3.1 → -3 |
Ceiling メソッドは、小数点以下を切り上げて整数部分を 1 増やし、小数点以下を 0 にします。正の数も負の数も、Ceiling メソッドで丸めるとより大きな整数に丸められます。
小数を切り上げる(Math.Ceilingメソッド)
Math クラスの静的な Ceiling メソッドを使用して切り捨てる方法です。
public static double Ceiling (double d);
Ceiling メソッドは小数点の第1位を切り上げて、整数値を double 型で返します。
静的なメソッドなのでインスタンスを別途生成する必要はなく、ソースファイルのヘッダー部分に名前空間 System を定義するだけで使うことができます。
小数点の第1位で切り上げる方法
Ceiling メソッドを呼び出せば、簡単に小数点の第1位を切り上げることができます。
使用例を以下に記述します。
double d1 = 3.14;
double reslut1 = Math.Ceiling(d1);
// 実行結果:4
double d2 = 3.86;
double reslut2 = Math.Ceiling(d2);
// 実行結果:4
double d3 = -3.14; //(マイナス値の場合)
double reslut3 = Math.Ceiling(d3);
// 実行結果:-3
double d4 = -3.86; //(マイナス値の場合)
double reslut4 = Math.Ceiling(d4);
// 実行結果:-3
小数点の第2位で切り上げる方法
Ceiling メソッドは桁数の指定ができないので、小数点の第2位を切り捨てるには次のようにします。
- 対象の小数に10を掛けて、小数点を右にずらします。
(3.14 * 10 = 31.4) - Ceiling メソッドを使用して小数点以下を切り上げます。
(31.4 → 32) - 対象の値を10で割って、小数点を左へずらします。
(32 / 10 = 3.2)
上記の方法をコードに直すと次のようになります。
double d1 = 3.14;
double reslut1 = Math.Ceiling(d1 * 10) / 10;
// 実行結果:3.2
double d2 = 3.86;
double reslut2 = Math.Ceiling(d2 * 10) / 10;
// 実行結果:3.9
double d3 = -3.14; //(マイナス値の場合)
double reslut3 = Math.Ceiling(d3 * 10) / 10;
// 実行結果:-3.1
double d4 = -3.86; //(マイナス値の場合)
double reslut4 = Math.Ceiling(d4 * 10) / 10;
// 実行結果:-3.8
小数点の第 N 位で切り上げる方法
少数点の第2位で切り上げるときは10倍しましたが、少数点の第3位で切り上げるときは100倍にします。Ceiling メソッドで切り上げた後、掛けた値で割って元の桁に戻します。
このことを応用して、小数点の第N位で切り上げる独自メソッドを作成してみましょう。
- 10の N 乗をして対象の小数に掛けて、小数点を右にずらします。
(3.14 * 10^N) - Ceiling メソッドを使用して小数点以下を切り上げます。
- 対象の値を10の N 乗で割って、小数点を左へずらします。
(32 / 10^N )
10のN乗は Math クラスの Pow メソッドを使用して独自メソッドを作成します。
public static double TruncateNumbers(double value, int n)
{
double powValue = Math.Pow(10, n);
return Math.Ceiling(value * powValue) / powValue;
}
このメソッドで小数の切り捨てを実行すると次のようになります。
double reslut1 = RoundUpNumbers(3.14, 0); //小数の第1位で切り捨て
// 実行結果:4
double reslut2 = RoundUpNumbers(3.14, 1); //小数の第2位で切り捨て
// 実行結果:3.2
double reslut3 = RoundUpNumbers(3.14, 2); //小数の第3位で切り捨て
// 実行結果:3.14
double reslut4 = RoundUpNumbers(-3.14, 0); //小数の第1位で切り捨て
// 実行結果:-3
double reslut5 = RoundUpNumbers(-3.14, 1); //小数の第2位で切り捨て
// 実行結果:-3.1
double reslut6 = RoundUpNumbers(-3.14, 2); //小数の第3位で切り捨て
// 実行結果:-3.14
最後に
小数点を切り上げるには、Math クラスの Ceiling メソッドを使います。
Ceiling は小数第1位で切り上げるメソッドですが、小数点の位置をシフトさせることで小数第2位や小数第3位の切り上げも可能です。
小数の切り下げについても知りたいていう方は以下の記事を見てみてください。
以上、最後まで読んで頂きありがとうございました。