C#:
数値の丸め処理
方法
これがC#で数字を丸めるための往復チケットです:
using System;
public class RoundingExamples
{
public static void Main()
{
double originalNumber = 123.4567;
// 最も近い整数に丸める
double rounded = Math.Round(originalNumber);
Console.WriteLine(rounded); // 出力:123
// 小数点以下の桁数を指定する
double roundedTwoDecimalPlaces = Math.Round(originalNumber, 2);
Console.WriteLine(roundedTwoDecimalPlaces); // 出力:123.46
// 次の桁に関わらず切り上げる
double roundedUp = Math.Ceiling(originalNumber);
Console.WriteLine(roundedUp); // 出力:124
// 次の桁に関わらず切り下げる
double roundedDown = Math.Floor(originalNumber);
Console.WriteLine(roundedDown); // 出力:123
}
}
深掘り
昔の話、丸めることは計算コストを削減するための簡単な手段でした。毎サイクルが重要であり、数字を削り落とすことで貴重な時間を節約できました。C# の現代においては、doubleやdecimalの精密さへの偏見や表示の奇妙さを管理することについてです。
Math.Round
、Math.Floor
、Math.Ceiling
を超えて、MidpointRounding
enumは、私たちに不憫な中間の桁の運命を決定させます。これは、銀行のルールと「半分を切り上げる」公平性の遊び場の間の十字路です。
より厳しい場合、たとえば真剣な数学や金融アプリケーションでは、高精度を提供することで丸めのドラマを減らすdecimal
をdouble
に優先します。丸めが少なければ問題も少ない。