Roundメソッドは丸めを行う小数部分の桁数を第二引数で指定することができます。 例えば、四捨五入を行うMidpointRounding.AwayFromZeroと組み合わせて桁数を指定することで、小数点1桁へ四捨五入する(小数点2桁目で四捨五入)、といったことができます。
Math.Roundメソッドを使って小数点n桁への四捨五入をする
using System;
class Sample {
static void Main()
{
Console.WriteLine("{0,8}| {1,12} {2,12} {3,12} {4,12}| {0,8}",
"value",
"Round(0)",
"Round(1)",
"Round(2)",
"Round(3)");
Console.WriteLine(new string('-', 14 * 5));
// 1.5から-1.5まで、0.125刻みの数dについて処理
for (double d = 1.5; -1.5 <= d; d -= 0.125) {
Console.WriteLine("{0,8:F4}| {1,12:F4} {2,12:F4} {3,12:F4} {4,12:F4}| {0,8:F4}",
d,
Math.Round(d, 0, MidpointRounding.AwayFromZero), // 小数点0桁へ四捨五入
Math.Round(d, 1, MidpointRounding.AwayFromZero), // 小数点1桁へ四捨五入
Math.Round(d, 2, MidpointRounding.AwayFromZero), // 小数点2桁へ四捨五入
Math.Round(d, 3, MidpointRounding.AwayFromZero)); // 小数点3桁へ四捨五入
}
}
}
実行結果
value| Round(0) Round(1) Round(2) Round(3)| value ---------------------------------------------------------------------- 1.5000| 2.0000 1.5000 1.5000 1.5000| 1.5000 1.3750| 1.0000 1.4000 1.3800 1.3750| 1.3750 1.2500| 1.0000 1.3000 1.2500 1.2500| 1.2500 1.1250| 1.0000 1.1000 1.1300 1.1250| 1.1250 1.0000| 1.0000 1.0000 1.0000 1.0000| 1.0000 0.8750| 1.0000 0.9000 0.8800 0.8750| 0.8750 0.7500| 1.0000 0.8000 0.7500 0.7500| 0.7500 0.6250| 1.0000 0.6000 0.6300 0.6250| 0.6250 0.5000| 0.0000 0.5000 0.5000 0.5000| 0.5000 0.3750| 0.0000 0.4000 0.3800 0.3750| 0.3750 0.2500| 0.0000 0.3000 0.2500 0.2500| 0.2500 0.1250| 0.0000 0.1000 0.1300 0.1250| 0.1250 0.0000| 0.0000 0.0000 0.0000 0.0000| 0.0000 -0.1250| 0.0000 -0.1000 -0.1300 -0.1250| -0.1250 -0.2500| 0.0000 -0.3000 -0.2500 -0.2500| -0.2500 -0.3750| 0.0000 -0.4000 -0.3800 -0.3750| -0.3750 -0.5000| 0.0000 -0.5000 -0.5000 -0.5000| -0.5000 -0.6250| -1.0000 -0.6000 -0.6300 -0.6250| -0.6250 -0.7500| -1.0000 -0.8000 -0.7500 -0.7500| -0.7500 -0.8750| -1.0000 -0.9000 -0.8800 -0.8750| -0.8750 -1.0000| -1.0000 -1.0000 -1.0000 -1.0000| -1.0000 -1.1250| -1.0000 -1.1000 -1.1300 -1.1250| -1.1250 -1.2500| -1.0000 -1.3000 -1.2500 -1.2500| -1.2500 -1.3750| -1.0000 -1.4000 -1.3800 -1.3750| -1.3750 -1.5000| -2.0000 -1.5000 -1.5000 -1.5000| -1.5000