web-dev-qa-db-ja.com

C#で小数点以下2桁に二重丸め?

倍精度の値を小数点以下2桁にc#で切り上げたいのですがどうすればよいですか。

double inputValue = 48.485;

切り上げ後

inputValue = 48.49;

Related: c# - 10進数値を小数点以下2桁に丸める方法(ページへの出力用)

221
sanjeev40084

これは動作します:

inputValue = Math.Round(inputValue, 2);
413
Alex LE
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
92
nandin

あなたが使うべきです

inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

Math.Round

Math.Roundは倍精度浮動小数点値を指定された小数桁数に丸めます。

MidpointRounding

2つの数の中間の数を四捨五入方法で処理する方法を指定します。

基本的に上記の関数はあなたの入力値を取り、それを2(またはあなたが指定した数値)の小数点以下の桁数に丸めるでしょう。 MidpointRounding.AwayFromZeroでは、ある数字が他の2つの数字の中間にあるときは、ゼロから離れた 最も近い数字に丸められます。 あなたが 最も近い偶数に向かってそれを使うことができるもう一つのオプションがあります。

24
Gage

Math.Round を使う

value = Math.Round(48.485, 2);
18
recursive

もう1つの簡単な方法は、パラメータと一緒にToStringを使用することです。例:

float d = 54.9700F;    
string s = d.ToString("N2");
Console.WriteLine(s);

結果:

54.97
16
Diwas

下記から試すことができます。これには多くの方法があります。

1. 
 value=Math.Round(123.4567, 2, MidpointRounding.AwayFromZero) //"123.46"
2.
 inputvalue=Math.Round(123.4567, 2)  //"123.46"
3. 
 String.Format("{0:0.00}", 123.4567);      // "123.46"
4. 
string.Format("{0:F2}", 123.456789);     //123.46
string.Format("{0:F3}", 123.456789);     //123.457
string.Format("{0:F4}", 123.456789);     //123.4568
8
reza.cse08