0

いくつかの値の平均を計算しています。すべて正常に動作します。私がしたいのは、doubleを小数点以下2桁に丸めることです。

例えば

0.833333333333333333 は 0.83 と表示されます

とにかくこれを行うことはありますか?

4

6 に答える 6

9

doubleそれ自体を次のように丸めます。

Math.Round(0.83333, 2, MidpointRounding.AwayFromZero);

(正しい結果を得るには、MidpointRounding.AwayAwayFromZero を定義する必要があります。デフォルトでは、この関数はバンカーの丸めを使用します。バンカーの丸めの詳細については、 http ://www.xbeat.net/vbspeed/i_BankersRounding.htmを参照してください。あなたに正しい結果を与える)

または、小数点以下 2 桁の表示値のみ:

myDouble.ToString("F");

または、の数によって決定される小数の場合#

myDouble.ToString("#.##")
于 2012-11-27T08:50:49.187 に答える
1

使用する

Math.Round(decimal d,int decimals);

なので

Math.Round(0.833333333,2); 

これにより、結果が得られます0.83

于 2012-11-27T08:52:57.913 に答える
1

あなたは次のように表示すると言います-それは次のようになります:

var d = value.ToString("f2");

標準数値フォーマット文字列を参照してください

実際に値を 2dp に調整したい場合は、@middelpat が提案したことを行うことができます。

于 2012-11-27T08:51:59.707 に答える
0
double d = 0.833333333333333333;
Math.Round(d, 2).ToString();
于 2012-11-27T08:52:57.737 に答える
0

試す

decimalVar = 0.833333333333333333;
decimalVar.ToString ("#.##");
于 2012-11-27T08:53:05.417 に答える
-1

0.85781..として表示したい場合 0.85、最も簡単な方法は、を乗算し100、にキャストしint、で除算すること100です。

int val = (int)(0.833333333333333333 * 100); 
var result = val /100;

それはあなたが探している結果を生み出すはずです。

于 2012-11-27T08:53:20.987 に答える