.NET Ssortingng.Format () pour append des virgules en milliers pour un nombre

Je veux append une virgule à la place des milliers pour un numéro. Ssortingng.Format() ?

Related of ".NET Ssortingng.Format () pour append des virgules en milliers pour un nombre"

 Ssortingng.Format("{0:n}", 1234); //Output: 1,234.00 ssortingng.Format("{0:n0}", 9876); // no digits after the decimal point. Output: 9,876 

J’ai trouvé que c’était le moyen le plus simple:

 myInteger.ToSsortingng("N0") 
 int number = 1000000000; ssortingng whatYouWant = number.ToSsortingng("#,##0"); //You get: 1,000,000,000 

Si vous voulez une culture spécifique, vous pouvez essayer ceci:

(19950000.0).ToSsortingng("N",new CultureInfo("en-US")) = 19 950 000,00

(19950000.0).ToSsortingng("N",new CultureInfo("is-IS")) = 19.950.000,00

Note: Certaines cultures utilisent , pour signifier décimal plutôt que . donc sois prudent.

Formats standard, avec leurs sorties associées,

 Console.WriteLine("Standard Numeric Format Specifiers"); Ssortingng s = Ssortingng.Format("(C) Currency: . . . . . . . . {0:C}\n" + "(D) Decimal:. . . . . . . . . {0:D}\n" + "(E) Scientific: . . . . . . . {1:E}\n" + "(F) Fixed point:. . . . . . . {1:F}\n" + "(G) General:. . . . . . . . . {0:G}\n" + " (default):. . . . . . . . {0} (default = 'G')\n" + "(N) Number: . . . . . . . . . {0:N}\n" + "(P) Percent:. . . . . . . . . {1:P}\n" + "(R) Round-sortingp: . . . . . . . {1:R}\n" + "(X) Hexadecimal:. . . . . . . {0:X}\n", - 1234, -1234.565F); Console.WriteLine(s); 

Exemple de sortie (culture en-us):

 (C) Currency: . . . . . . . . ($1,234.00) (D) Decimal:. . . . . . . . . -1234 (E) Scientific: . . . . . . . -1.234565E+003 (F) Fixed point:. . . . . . . -1234.57 (G) General:. . . . . . . . . -1234 (default):. . . . . . . . -1234 (default = 'G') (N) Number: . . . . . . . . . -1,234.00 (P) Percent:. . . . . . . . . -123,456.50 % (R) Round-sortingp: . . . . . . . -1234.565 (X) Hexadecimal:. . . . . . . FFFFFB2E 

C’est le meilleur format. Fonctionne dans tous ces cas:

 Ssortingng.Format( "{0:#,##0.##}", 0 ); // 0 Ssortingng.Format( "{0:#,##0.##}", 0.5 ); // 0.5 - some of the formats above fail here. Ssortingng.Format( "{0:#,##0.##}", 12314 ); // 12,314 Ssortingng.Format( "{0:#,##0.##}", 12314.23123 ); // 12,314.23 Ssortingng.Format( "{0:#,##0.##}", 12314.2 ); // 12,314.2 Ssortingng.Format( "{0:#,##0.##}", 1231412314.2 ); // 1,231,412,314.2 
 Ssortingng.Format("{0:#,###,###.##}", MyNumber) 

Cela vous donnera des virgules aux points pertinents.

Si vous souhaitez forcer un séparateur “,” quelle que soit la culture (par exemple, dans un message de trace ou de journal), le code suivant fonctionnera et aura l’avantage supplémentaire de dire au prochain utilisateur qui trébuche exactement ce que vous faites.

 int integerValue = 19400320; ssortingng formatted = ssortingng.Format(CultureInfo.InvariantCulture, "{0:N0}", integerValue); 

jeux au format “19 400 320”

La réponse la plus votée était géniale et utile depuis environ 7 ans. Avec l’introduction de C # 6.0 et plus précisément de l’interpolation de chaîne, il existe un moyen plus simple et plus sûr de faire ce qui a été demandé to add commas in thousands place for a number :

 var i = 5222000; var s = $"{i:n} is the number"; // results to > 5,222,000.00 is the number s = $"{i:n0} has no decimal"; // results to > 5,222,000 has no decimal 

Où la variable i est mise à la place de l’espace réservé (c’est-à-dire {0} ). Il n’y a donc pas besoin de se rappeler quel object va à quelle position. Le formatage (ie :n ) n’a pas changé. Pour une fonctionnalité complète des nouveautés, vous pouvez aller sur cette page .

L’exemple suivant affiche plusieurs valeurs mises en forme à l’aide de chaînes de format personnalisé incluant des espaces réservés de zéro.

 Ssortingng.Format("{0:N1}", 29255.0); 

Ou

 29255.0.ToSsortingng("N1") 

résultat “29,255.0”

 Ssortingng.Format("{0:N2}", 29255.0); 

Ou

 29255.0.ToSsortingng("N2") 

résultat “29,255.00”

simplement simple comme ceci:

 float num = 23658; // for example num = num.ToSsortingng("N0"); // Returns 23,658 

plus d’infos est ici

 int num = 98765432; Console.WriteLine(ssortingng.Format("{0:#,#}", num)); 

Par exemple Ssortingng.Format("{0:0,0}", 1); retourne 01, pour moi n’est pas valide

Cela fonctionne pour moi

 19950000.ToSsortingng("#,#", CultureInfo.InvariantCulture)); 

production 19 950 000

Notez que la valeur que vous mettez en forme doit être numérique. Il ne semble pas qu’il faudra une représentation sous forme de chaîne d’un nombre et le format est avec des virgules.

Plus simple, en utilisant l’interpolation de chaînes au lieu de Ssortingng.Format

  $"{12456:n0}"; // 12,456 $"{12456:n2}"; // 12,456.00 

ou en utilisant votre variable

  double yourVariable = 12456.0; $"{yourVariable:n0}"; $"{yourVariable:n2}"; 

Vous pouvez utiliser une fonction comme celle-ci pour formater des nombres et éventuellement passer les décimales souhaitées. Si les décimales ne sont pas spécifiées, il utilisera deux décimales.

  public static ssortingng formatNumber(decimal valueIn=0, int decimalPlaces=2) { return ssortingng.Format("{0:n" + decimalPlaces.ToSsortingng() + "}", valueIn); } 

J’utilise décimal mais vous pouvez changer le type à tout autre ou utiliser un object anonyme. Vous pouvez également append une vérification d’erreur pour les valeurs décimales négatives.

 Ssortingng.Format("0,###.###"); also works with decimal places 

La méthode que je n’utilisais plus pour les cultures et les problèmes potentiels de mise en forme est que je l’ai formatée en tant que devise et que j’ai ensuite sorti le symbole monétaire.

if (decimal.TryParse(tblCell, out result))

 { formattedValue = result.ToSsortingng("C").Subssortingng(1); } 

Voici une bonne solution en Java si!

 NumberFormat fmt = NumberFormat.getCurrencyInstance(); System.out.println(fmt.format(n)); 

ou pour une manière plus robuste, vous voudrez peut-être obtenir les parameters régionaux d’un lieu particulier, puis utilisez comme ci-dessous:

 int n=9999999; Locale locale = new Locale("en", "US"); NumberFormat fmt = NumberFormat.getCurrencyInstance(locale); System.out.println(fmt.format(n)); 

US Locale OUTPUT: 9 999 999,00 $

Locale allemande

 Locale locale = new Locale("de", "DE"); 

SORTIE: 9.999.999,00 €

Indienne Locale

 Locale locale = new Locale("de", "DE"); 

SORTIE: Rs.9,999,999.00

Production locale d’ Estonie

 Locale locale = new Locale("et", "EE"); 

SORTIE: 9 999 999 €

Comme vous pouvez le voir dans les différentes sorties, vous n’avez pas à vous soucier du fait que le séparateur soit une virgule ou un point ou même de l’ espace, vous pouvez obtenir le nombre formaté selon les normes i18n

Si vous voulez l’afficher dans DataGridview, vous devez changer son type, car la valeur par défaut est Chaîne et que vous la modifiez en décimal, elle est considérée comme un nombre à virgule flottante.

 Dim dt As DataTable = New DataTable dt.Columns.Add("col1", GetType(Decimal)) dt.Rows.Add(1) dt.Rows.Add(10) dt.Rows.Add(2) DataGridView1.DataSource = dt