web-dev-qa-db-fra.com

Comment limiter un nombre décimal?

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
18
aharon

Méthode Math.Round (Decimal, Int32)

Exemple:

Math.Round(3.44, 1); //Returns 3.4.
44
Pranay Rana

Je suppose que vous voulez vraiment le formater pour la sortie:

Console.WriteLine("{0:0.###}", value);
11
Matthew Flaschen

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"
2
heads5150

Utilisation Math.Round pour l'arrondir à décimales.

1
Donnie

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().

1
Tim Coker

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