Math.Round
関数を使用してこれを行いたい
15 に答える
以下にいくつかの例を示します。
decimal a = 1.994444M;
Math.Round(a, 2); //returns 1.99
decimal b = 1.995555M;
Math.Round(b, 2); //returns 2.00
次のオーバーロードを使用して、バンカーの丸め/偶数への丸めを確認することもできます。
Math.Round(a, 2, MidpointRounding.ToEven);
詳細については、こちらをご覧ください。
これを試して:
twoDec = Math.Round(val, 2)
文字列をご希望の場合
> (1.7289).ToString("#.##")
"1.73"
または小数
> Math.Round((Decimal)x, 2)
1.73m
でも覚えておいて!丸めは分配的ではありません。round(x*y) != round(x) * round(y)
. したがって、計算の最後まで丸めを行わないでください。そうしないと、精度が失われます。
個人的には何も丸めません。いずれにせよ、CS では丸めは少し面倒なので、できるだけ毅然とした態度を保ってください。しかし、あなたはユーザーのためにデータをフォーマットしたいと考えています。そのためにstring.Format("{0:0.00}", number)
は、それが良いアプローチだと思います。
ウィキペディアには、一般的な丸めに関する優れたページがあります。
すべての .NET (マネージ) 言語は、共通言語ランタイム (CLR) の丸めメカニズムのいずれかを使用できます。たとえば、(前述の) Math.Round( ) メソッドを使用すると、開発者は丸めのタイプ (Round-to-even または Away-from-zero) を指定できます。Convert.ToInt32() メソッドとそのバリエーションはround-to-even を使用します。Ceiling( )メソッドとFloor()メソッドは関連しています。
カスタム数値フォーマットで丸めることもできます。
Decimal.Round() はMath.Round()とは異なるメソッドを使用することに注意してください。
これは、バンカーの丸めアルゴリズムに関する有益な投稿です。丸めに関するRaymond のユーモラスな投稿の 1 つを参照してください...
これは、C# で小数点以下 2 桁に丸めるためのものです。
label8.Text = valor_cuota .ToString("N2") ;
VB.NET の場合:
Imports System.Math
round(label8.text,2)
確認したいことの 1 つは、Math.Round の丸めメカニズムです。
http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx
それ以外は、 *100/100 アプローチよりも Math.Round(inputNumer, numberOfPlaces) アプローチをお勧めします。
Math.Round(YourNumber, 2) を使用して丸めたい桁数を指定できるはずです
詳しくはこちらをご覧ください。
文字列 a = "10.65678";
decimal d = Math.Round(Convert.ToDouble(a.ToString()),2)
public double RoundDown(double number, int decimalPlaces)
{
return Math.Floor(number * Math.Pow(10, decimalPlaces)) / Math.Pow(10, decimalPlaces);
}