Duplicata possible:
Comment formater une décimale
Comment puis-je limiter mon nombre décimal pour n'obtenir que 3 chiffres après le point?
e.g 2.774
Je suppose que vous voulez vraiment le formater pour la sortie:
Console.WriteLine("{0:0.###}", value);
Pour récupérer Decimal, utilisez Math.Round
Avec Second paramètre spécifiant le nombre de points décimaux.
decimal d = 54.9700M;
decimal f = (Math.Round(d, 2)); // 54.97
Pour obtenir une représentation sous forme de chaîne d'un nombre, utilisez .ToString()
en spécifiant les points décimaux comme N3. Où 3 est le point décimal
decimal d = 54.9700M;
string s = number.ToString("N3"); // "54.97"
Utilisation Math.Round
pour l'arrondir à décimales.
Limiter la précision d'un nombre à virgule flottante est un concept SQL. Decimal dans csharp signifie seulement qu'il se souviendra de la précision assignée. Vous pouvez arrondir à trois décimales avant d'attribuer. IE, Math.Round()
.
Une partie de ma réponse est la réponse, une autre partie est juste un point intéressant:
Je veux souvent voir la variable comme un prop/field
. Donc, créez un extension method
pour résoudre mon problème:
Tensao est juste un Enum qui a une valeur liée.
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);
}
}