C# 四捨五入をする

  • 作成日 2020.10.05
  • 更新日 2022.03.04
  • C#
C# 四捨五入をする

C#で、Math.Roundメソッドを使用して、四捨五入をするサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Microsoft Visual Studio Community 2019 Version 16.7.1

Math.Roundメソッド使い方

Math.Floorメソッドを使用すると、四捨五入を行うことが可能です。

double num = 1.527;

// 小数第1位で四捨五入 2
Console.WriteLine(Math.Round(num, MidpointRounding.AwayFromZero));

// 小数第2位で四捨五入 1.5
Console.WriteLine(Math.Round(num, 1,MidpointRounding.AwayFromZero));

// 小数第3位で四捨五入 1.53
Console.WriteLine(Math.Round(num, 2,MidpointRounding.AwayFromZero));

四捨五入する対象が「5」の場合の、結果が偶数になる方に丸める「銀行丸め」をしたい場合は「MidpointRounding.AwayFromZero」を指定しません。

double num = 2.5;

// 小数第1位で四捨五入 3
Console.WriteLine(Math.Round(num, MidpointRounding.AwayFromZero));

// 小数第1位で四捨五入 2
Console.WriteLine(Math.Round(num));

double num = 1.5;

// 小数第1位で四捨五入 2
Console.WriteLine(Math.Round(num, MidpointRounding.AwayFromZero));

// 小数第1位で四捨五入 2
Console.WriteLine(Math.Round(num));

サンプルコード

以下は、
textboxに入力した値を、少数第一位を四捨五入して、別のtextboxに表示する
サンプルコードとなります。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormTestApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // textBox1.Textの値を取得
            double num = Convert.ToDouble(textBox1.Text);

            // 四捨五入
            int result = (int)Math.Round(num, MidpointRounding.AwayFromZero);

            // textBox2.Textに値を表示
            textBox2.Text = Convert.ToString(result);
        }
    }
}

実行結果を確認すると、少数以下が四捨五入されて表示されることが確認できます。