Eventuali duplicati:
How to format a decimalCome limitare un numero decimale?
Come posso limitare la mia numero decimale in modo da otterrà solo 3 cifre dopo la virgola?
e.g 2.774
Eventuali duplicati:
How to format a decimalCome limitare un numero decimale?
Come posso limitare la mia numero decimale in modo da otterrà solo 3 cifre dopo la virgola?
e.g 2.774
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. –
grazie per le preziose informazioni signore –
Usa Math.Round
per arrotondare a cifre decimali.
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()
.
Sto assumendo realmente significa la formattazione per l'uscita:
Console.WriteLine("{0:0.###}", value);
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"
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);
}
}
da visualizzare? o perdere la precisione ancora di più di quanto non lo sia già con il floating point ...? – gbn