2010-07-09 19 views

risposta

37

Math.Round Method (Decimal, Int32)

Esempio:

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

Nota che, per impostazione predefinita, C# utilizza "Arrotondamento del banco" che potrebbe non essere quello che desideri, quindi esiste un metodo di overload Math.Round (decimale, int, MidpointRounding) per specificare esattamente quale metodo di arrotondamento utilizzare. Per esempio. TSQL utilizza l'arrotondamento "Away From Zero", pertanto può fornire un valore diverso rispetto all'arrotondamento C# predefinito. –

+0

grazie per le preziose informazioni signore –

1

Usa Math.Round per arrotondare a cifre decimali.

1

Limitare la precisione di un numero in virgola mobile è un concetto SQL. Decimale in csharp significa solo che ricorderà la precisione assegnata. Puoi arrotondare a tre cifre decimali prima dell'assegnazione. IE, Math.Round().

10

Sto assumendo realmente significa la formattazione per l'uscita:

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

Per ottenere decimale indietro utilizzare Math.Round con Second parametro numero di punti decimali specificare.

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

per ottenere rappresentazione String del numero utilizzo .ToString() specifiying Punti decimali come N3. Dove 3 è il punto decimale

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

parte della mia risposta è la risposta, un'altra parte è solo un punto interessante:

spesso mi vogliono vedere la variabile come prop/field. Quindi crea un extension method per risolvere il mio problema:

Tensao è solo un Enum che ha un valore correlato.

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