.NETではMathというクラスに小数点以下を丸める機能が提供されています。丸めにもいろいろな考え?(という規格)があるようで、四捨五入と最近接偶数丸めという2種類が提供されています。コードはこんなかんじ。
double[] datas = { 10.15, 10.25, 10.35, 10.45, 10.55 };
foreach (double data in datas)
{
//偶数丸め
double data1 = Math.Round(data, 1, MidpointRounding.ToEven);
//四捨五入
double data2 = Math.Round(data, 1, MidpointRounding.AwayFromZero);
System.Diagnostics.Debug.WriteLine(
string.Format("入力=[{0}]偶数丸め=[{1}] 四捨五入=[{2}]", data, data1, data2));
}
foreach (double data in datas)
{
//偶数丸め
double data1 = Math.Round(data, 1, MidpointRounding.ToEven);
//四捨五入
double data2 = Math.Round(data, 1, MidpointRounding.AwayFromZero);
System.Diagnostics.Debug.WriteLine(
string.Format("入力=[{0}]偶数丸め=[{1}] 四捨五入=[{2}]", data, data1, data2));
}
実行結果
入力=[10.15]偶数丸め=[10.2] 四捨五入=[10.2]
入力=[10.25]偶数丸め=[10.2] 四捨五入=[10.3]
入力=[10.35]偶数丸め=[10.4] 四捨五入=[10.4]
入力=[10.45]偶数丸め=[10.4] 四捨五入=[10.5]
入力=[10.55]偶数丸め=[10.6] 四捨五入=[10.6]
入力=[10.25]偶数丸め=[10.2] 四捨五入=[10.3]
入力=[10.35]偶数丸め=[10.4] 四捨五入=[10.4]
入力=[10.45]偶数丸め=[10.4] 四捨五入=[10.5]
入力=[10.55]偶数丸め=[10.6] 四捨五入=[10.6]
ちなみに.NET Framework 1.1までは偶数丸めのみで、四捨五入が提供されていないようでうす。
0 件のコメント:
コメントを投稿