2010-07-09 93 views

Respuesta

37

Math.Round Method (Decimal, Int32)

Ejemplo:

Math.Round(3.44, 1); //Returns 3.4. 
+6

Tenga en cuenta que, de forma predeterminada, C# utiliza "Redondeo de banca", que puede no ser lo que desea, por lo que hay un método de sobrecarga Math.Round (decimal, int, MidpointRounding) que le permite especificar exactamente qué método de redondeo utilizar. P.ej. TSQL usa el redondeo 'Ausente de cero', por lo que puede dar un valor diferente al redondeo predeterminado de C#. –

+0

gracias por la valiosa información señor –

1

Uso Math.Round para redondear a cifras decimales.

1

Limitar la precisión de un número de coma flotante es un concepto de SQL. El decimal en csharp solo significa que recordará la precisión asignada. Puede redondear a tres decimales antes de asignar. IE, Math.Round().

10

estoy suponiendo que realmente significa que el formato para la salida:

Console.WriteLine("{0:0.###}", value); 
1

Para obtener decimal posterior uso Math.Round El segundo parámetro con el número de decimales que especifica.

decimal d = 54.9700M;  
decimal f = (Math.Round(d, 2)); // 54.97 

de conseguir representación de cadena del número .ToString() uso especificando los puntos decimales como N3. Donde 3 es los puntos decimales

decimal d = 54.9700M;  
string s = number.ToString("N3"); // "54.97" 
1

parte de mi respuesta es la respuesta, otra parte es sólo un punto interesante:

a menudo quieren ver la variable como un prop/field. Entonces crea un extension method para resolver mi problema:

Tensao es solo un Enum que tiene un valor relacionado.

public static class TensaoExtensions { 
     public static double TensaoNominal(this Tensao tensao) { 
      return Math.Round((double.Parse(EnumMapper.Convert(typeof(Tensao), 
          tensao.ToString()))) * 1000/Math.Sqrt(3), 3); 
     } 
    } 
Cuestiones relacionadas