C#

【C#】小数点を切り上げする方法を紹介(Math.Ceiling)

この記事では、小数を切り上げる方法について紹介しています。

ぜひ最後まで読んでみてください。

こんな方にオススメの記事
  • 少数の小数点以下を切り上げたい
  • 小数点の第2位を切り上げたい
  • 小数点以下の桁数を指定して切り上げたい

小数を切り上げる

Math クラスの Ceiling メソッド を使うことで小数を切り上げることができます。

メソッド内容正数負数
Ceiling大きい方向へ丸めて切り上げる3.1 → 4-3.1 → -3

 

切り上げる(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位を切り捨てるには次のようにします。

  1. 対象の小数に10を掛けて、小数点を右にずらします。
    (3.14 * 10 = 31.4)
  2. Ceiling メソッドを使用して小数点以下を切り上げます。
    (31.4 → 32)
  3. 対象の値を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位で切り上げる独自メソッドを作成してみましょう。

    1. 10の N 乗をして対象の小数に掛けて、小数点を右にずらします。
      (3.14 * 10^N)
    2. Ceiling メソッドを使用して小数点以下を切り上げます。
    3. 対象の値を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位の切り上げも可能です。

    小数の切り下げについても知りたいていう方は以下の記事を見てみてください。

    【C#】小数を切り捨てる方法をまとめて紹介(小数点の処理)C#で小数点の切り捨てを行う方法について紹介をします。切り捨てを行うにはMathクラスのFloorメソッドまたはTruncateメソッドを使います。小数点以下の桁数を指定して切り捨てる独自関数も紹介していますので、ぜひ最後まで読んでみてください。...

    以上、最後まで読んで頂きありがとうございました。

    プログラミングを学習したいなら…

    プログラミングスキルを身に付けるなら、プログラミングを効率良く学べる
    プログラミングスクール」がオススメです。

    特にこんな方にオススメ!!
    これからエンジニアを目指したい
    プログラミングの専門性を高めたい
    プログラミングを学んで副業をしたい
    エンジニアに転職して年収をアップさせたい

    プログラミングを触ったことがない未経験からでも、プログラミングスクールで学習すれば、エンジニアへ就職・転職することも可能です。

    あなたの「行動力」と「やる気」で、あなたの人生を大きく変えるチャンスになることでしょう。

    プログラミングスクールに興味がある方は是非チェックしてみてください。

    > プログラミングを学ぶ <

    COMMENT

    メールアドレスが公開されることはありません。

    CAPTCHA