447

Math.Round関数を使用してこれを行いたい

4

15 に答える 15

734

以下にいくつかの例を示します。

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);

詳細については、こちらをご覧ください。

于 2008-11-02T16:13:59.680 に答える
114

これを試して:

twoDec = Math.Round(val, 2)
于 2008-11-02T16:11:44.257 に答える
40

文字列をご希望の場合

> (1.7289).ToString("#.##")
"1.73"

または小数

> Math.Round((Decimal)x, 2)
1.73m

でも覚えておいて!丸めは分配的ではありません。round(x*y) != round(x) * round(y). したがって、計算の最後まで丸めを行わないでください。そうしないと、精度が失われます。

于 2013-03-27T01:02:19.680 に答える
34

個人的には何も丸めません。いずれにせよ、CS では丸めは少し面倒なので、できるだけ毅然とした態度を保ってください。しかし、あなたはユーザーのためにデータをフォーマットしたいと考えています。そのためにstring.Format("{0:0.00}", number)は、それが良いアプローチだと思います。

于 2012-02-23T02:01:55.237 に答える
16

ウィキペディアには、一般的な丸めに関する優れたページがあります。

すべての .NET (マネージ) 言語は、共通言語ランタイム (CLR) の丸めメカニズムのいずれかを使用できます。たとえば、(前述の) Math.Round( ) メソッドを使用すると、開発者は丸めのタイプ (Round-to-even または Away-from-zero) を指定できます。Convert.ToInt32() メソッドとそのバリエーションはround-to-even を使用します。Ceiling( )メソッドとFloor()メソッドは関連しています。

カスタム数値フォーマットで丸めることもできます。

Decimal.Round() はMath.Round()とは異なるメソッドを使用することに注意してください。

これは、バンカーの丸めアルゴリズムに関する有益な投稿です。丸めに関するRaymond のユーモラスな投稿の 1 つを参照してください...

于 2008-11-02T16:27:31.417 に答える
8

これは、C# で小数点以下 2 桁に丸めるためのものです。

label8.Text = valor_cuota .ToString("N2") ;

VB.NET の場合:

 Imports System.Math
 round(label8.text,2)
于 2012-02-22T21:06:54.780 に答える
4

確認したいことの 1 つは、Math.Round の丸めメカニズムです。

http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx

それ以外は、 *100/100 アプローチよりも Math.Round(inputNumer, numberOfPlaces) アプローチをお勧めします。

于 2008-11-02T16:15:44.733 に答える
3

Math.Round(YourNumber, 2) を使用して丸めたい桁数を指定できるはずです

詳しくはこちらをご覧ください

于 2008-11-02T16:15:00.957 に答える
1

文字列 a = "10.65678";

decimal d = Math.Round(Convert.ToDouble(a.ToString()),2)

于 2015-11-27T06:33:34.623 に答える
0
  public double RoundDown(double number, int decimalPlaces)
        {
            return Math.Floor(number * Math.Pow(10, decimalPlaces)) / Math.Pow(10, decimalPlaces);
        }
于 2017-06-28T08:53:18.170 に答える