2011-09-02 3 views
3

J'ai un double et je veux formater les règles suivantes:Quel est le meilleur moyen de formater ce numéro?

  1. S'il n'y a pas décimales montrent que le nombre (voir 100 exemple ci-dessous)
  2. S'il y a des décimales Afficher 2 décimales

Alors, comme quelques exemples:

100 --> 100 
99.958443534 --> 99.96 
99.1 -> 99.10 

Répondre

0

Vous pouvez utiliser:

decimal a = 99.949999999M; 

Math.Round(a, 2); // Returns 99.95 
+2

Il veut 28 revenir 28, et non 28,00 – deepee1

+1

@Neil Knight - ce n'est pas ce que je veux. comme indiqué s'il n'y a pas de décimales dans le nombre, je ne veux pas montrer le ".00" – leora

4

Vous pouvez vérifier si son un nombre entier, l'utilisation du type de mise en forme sur cette base:

string res = string.Format(((number % 1) == 0) ? "{0:0}" : "{0:0.00}", number); 
1

Qu'en est-:

var a = 100; 
var b = 99.95844354; 

var aAnswer = a.ToString("0.##"); //aAnswer is "100" 
var bAnswer = b.ToString("0.##"); //bAnswer is "99.96" 
+1

Cela fonctionnerait s'il y a toujours deux décimales. Si le PO a 1,2, je pense qu'ils s'attendent à ce que le résultat soit de 1,20. Cela se traduirait par 1,2 – SwDevMan81

+1

@ SwDevMan81: Vous avez raison. Donc, votre réponse est le chemin à parcourir! – WaltiD

Questions connexes