いくつかの値の平均を計算しています。すべて正常に動作します。私がしたいのは、doubleを小数点以下2桁に丸めることです。
例えば
0.833333333333333333 は 0.83 と表示されます
とにかくこれを行うことはありますか?
double
それ自体を次のように丸めます。
Math.Round(0.83333, 2, MidpointRounding.AwayFromZero);
(正しい結果を得るには、MidpointRounding.AwayAwayFromZero を定義する必要があります。デフォルトでは、この関数はバンカーの丸めを使用します。バンカーの丸めの詳細については、 http ://www.xbeat.net/vbspeed/i_BankersRounding.htmを参照してください。あなたに正しい結果を与える)
または、小数点以下 2 桁の表示値のみ:
myDouble.ToString("F");
または、の数によって決定される小数の場合#
myDouble.ToString("#.##")
使用する
Math.Round(decimal d,int decimals);
なので
Math.Round(0.833333333,2);
これにより、結果が得られます0.83
。
あなたは次のように表示すると言います-それは次のようになります:
var d = value.ToString("f2");
標準数値フォーマット文字列を参照してください
実際に値を 2dp に調整したい場合は、@middelpat が提案したことを行うことができます。
double d = 0.833333333333333333;
Math.Round(d, 2).ToString();
試す
decimalVar = 0.833333333333333333;
decimalVar.ToString ("#.##");
0.85781..
として表示したい場合 0.85
、最も簡単な方法は、を乗算し100
、にキャストしint
、で除算すること100
です。
int val = (int)(0.833333333333333333 * 100);
var result = val /100;
それはあなたが探している結果を生み出すはずです。