Question

J'ai un nombre décimal, dire 1234,500.

Je veux afficher comme 1,234.5.

Je suis en train de convertir à un double pour enlever la fuite « 0 'de.

string.Format("{0:0,0}",1234.500) supprime la virgule, et d'autres options de formatage semblent utiliser deux décimales indépendamment.

Quelqu'un peut-il offrir un aperçu?

Était-ce utile?

La solution

Vous devez utiliser une mise en forme personnalisée comme #,##0.00

string s = string.Format("{0:#,##0.00}", xx);

Produira 1,234.50 quand xx = 1234.5M
oublier la conversion à double, qui ne sera pas vraiment aider.

Autres conseils

Savez-vous que .NET a un support intégré pour le formatage correctement les numéros selon les paramètres régionaux de chaque utilisateur de votre application? Il pourrait être préférable de tirer parti de propres paramètres régionaux de l'utilisateur (le framework .NET connaît tous les bons réglages déjà).

Cependant, si vous voulez fixer votre application aux numéros de format dans un contexte régional particulier, vous pouvez toujours leveage un endroit particulier de votre choix et .NET force pour l'utiliser comme base de la mise en forme (pas seulement des chiffres):

using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");

et

Thread.CurrentThread.CurrentUICulture = us;

ou tout simplement

Console.WriteLine(d.ToString("c", us));

Vous devez être conscient que l'utilisation de virgules comme séparateur de milliers est approprié pour Royaume-Uni et États-Unis, mais il est pas comment dans d'autres pays des milliers doivent être affichés

  

"1020-5 est affiché comme 1,025 aux États-   Unis et 1.025 en Allemagne. En Suède, le séparateur de milliers est un espace "

MSDN a section dédiée consacrée à ce sujet qu'ils appellent ' la mondialisation »(c.-à-qui est un bon terme de recherche si jamais vous avez besoin de traquer plus de détails). Cette page décrit comment l'utilisation du signe dièse fonctionne comme un espace réservé à deux chiffres pour la suppression des zéros de suivi (comme suggéré par Henk Holterman dans un commentaire précédent).

Voir aussi personnalisés Chaînes de format numériques .

Une autre alternative:

decimal d = 1234.56m;
string s = d.ToString("N");    // 1,234.56

Avez-vous essayé?

   String.Format("{0:0,0.00}", 1234.560);

essayer!

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Try
            TextBox1.Text = Format(CInt(TextBox1.Text), "#,#")
            TextBox1.SelectionStart = TextBox1.Text.Length
        Catch ex As Exception

        End Try

End Sub

Essayez ceci:

string myNumber = string.Format("{0:#,0.00}", 1234.500);

(je l'ai vu dans les rapports de RDLC)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top