117 votes

Obtenir la partie décimale d'un double

Je veux recevoir le nombre après le point décimal sous la forme d'un nombre entier. Par exemple, seulement 05 à partir de 1,05 ou de 2,50 seulement 50 pas 0.50

248voto

matterai Points 1927

Le meilleur de la meilleure façon est :

var floatNumber = 12.5523;

var x = floatNumber - Math.Truncate(floatNumber);

résultat que vous pouvez convertir comme vous le souhaitez

88voto

YYY Points 3216
var decPlaces = (int)(((decimal)number % 1) * 100);

Cela suppose que votre nombre ne comporte que deux décimales.

69voto

holmexx Points 487

Il existe une solution plus propre et plus rapide que l'approche "Math.Truncate" :

double frac = value % 1;

19voto

orad Points 978

Solution sans problème d'arrondi :

double number = 10.20;
var first2DecimalPlaces = (int)(((decimal)number % 1) * 100);
Console.Write("{0:00}", first2DecimalPlaces);

Sorties : 20

Notez que si nous ne convertissons pas en décimal, le résultat serait le suivant 19 .

Aussi :

  • pour 318.40 sorties : 40 (au lieu de 39 )
  • pour 47.612345 sorties : 61 (au lieu de 612345 )
  • pour 3.01 sorties : 01 (au lieu de 1 )

Si vous travaillez avec des chiffres financiers, par exemple, si dans ce cas vous essayez d'obtenir la cents d'une partie du montant d'une transaction, utilisez toujours le decimal type de données.

Mise à jour :

La méthode suivante fonctionnera également si vous la traitez comme une chaîne de caractères (en vous basant sur la réponse de @SearchForKnowledge).

10.2d.ToString("0.00", CultureInfo.InvariantCulture).Split('.')[1]

Vous pouvez alors utiliser Int32.Parse pour le convertir en int.

11voto

Parag Meshram Points 2919

Une meilleure façon de faire -

        double value = 10.567;
        int result = (int)((value - (int)value) * 100);
        Console.WriteLine(result);

Sortie -

56

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X