Como você arredondar um número para duas casas decimais em c #?

Eu quero fazer isso usando a function Math.Round

Veja alguns exemplos:

 decimal a = 1.994444M; Math.Round(a, 2); //returns 1.99 decimal b = 1.995555M; Math.Round(b, 2); //returns 2.00 

Você também pode querer olhar para os banqueiros arredondando / arredondado para igual com a seguinte sobrecarga:

 Math.Round(a, 2, MidpointRounding.ToEven); 

Há mais informações sobre isso aqui .

Tente isto:

 twoDec = Math.Round(val, 2) 

Pessoalmente eu nunca arredo nada. Mantê-lo o mais resoluto possível, desde que o arredondamento é um pouco de arenque vermelho no CS de qualquer maneira. Mas você quer formatar dados para seus usuários e, para esse fim, acho que string.Format("{0:0.00}", number) é uma boa abordagem.

Se você quiser uma string

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

Ou um decimal

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

Mas lembre-se! O arredondamento não é distributivo, ie. round(x*y) != round(x) * round(y) . Portanto, não faça nenhum arredondamento até o final de um cálculo, senão você perderá a precisão.

A Wikipedia tem uma boa página sobre arredondamentos em geral.

Todos os idiomas .NET (gerenciados) podem usar qualquer um dos mecanismos de arredondamento do tempo de execução de linguagem comum (o CLR). Por exemplo, o método Math.Round () (como mencionado acima) permite que o desenvolvedor especifique o tipo de arredondamento (Round-to-even ou Away-from-zero). O método Convert.ToInt32 () e suas variações usam round-to-even . Os methods Ceiling () e Floor () estão relacionados.

Você também pode arredondar com formatação numérica personalizada .

Observe que Decimal.Round () usa um método diferente de Math.Round ();

Aqui está uma posição útil no algoritmo de arredondamento do banqueiro. Veja um dos posts bem humorados de Raymond aqui sobre o arredondamento …

// converter até duas casas decimais

 String.Format("{0:0.00}", 140.6767554); // "140.67" String.Format("{0:0.00}", 140.1); // "140.10" String.Format("{0:0.00}", 140); // "140.00" Double d = 140.6767554; Double dc = Math.Round((Double)d, 2); // 140.67 decimal d = 140.6767554M; decimal dc = Math.Round(d, 2); // 140.67 

=========

 // just two decimal places String.Format("{0:0.##}", 123.4567); // "123.46" String.Format("{0:0.##}", 123.4); // "123.4" String.Format("{0:0.##}", 123.0); // "123" 

também pode combinar “0” com “#”.

 String.Format("{0:0.0#}", 123.4567) // "123.46" String.Format("{0:0.0#}", 123.4) // "123.4" String.Format("{0:0.0#}", 123.0) // "123.0" 

Eu sei que é uma pergunta antiga, mas observe as seguintes diferenças entre as rodadas Math e Round em formato String :

 decimal d1 = (decimal)1.125; Math.Round(d1, 2).Dump(); // returns 1.12 d1.ToString("#.##").Dump(); // returns "1.13" decimal d2 = (decimal)1.1251; Math.Round(d2, 2).Dump(); // returns 1.13 d2.ToString("#.##").Dump(); // returns "1.13" 

Isto é para arredondar para 2 casas decimais em C #:

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

Em VB.NET:

  Imports System.Math round(label8.text,2) 

Uma coisa que você pode querer verificar é o mecanismo de arredondamento do Math.Round:

http://msdn.microsoft.com/pt-br/library/system.midpointrounding.aspx

Além disso, eu recomendo a abordagem Math.Round (inputNumer, numberOfPlaces) sobre a * 100/100 porque é mais limpa.

Você deve ser capaz de especificar o número de dígitos que deseja arredondar usando Math.Round (YourNumber, 2)

Você pode ler mais aqui .

string a = “10,665678”;

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

Math.Floor (123456.646 * 100) / 100 Voltaria 123456.64