Question

Mon application affiche actuellement des nombres négatifs sous la forme -1. Les utilisateurs ont changé les exigences (juste pour changer!) Et nous devrons maintenant afficher les nombres comme (1). Puis-je activer cela pour l'ensemble de l'application, par exemple pour changer le fichier web.config ou même le CultureInfo de l'application? Y a-t-il un effet secondaire à faire cela puisque nous avons beaucoup de pages qui contiennent des validateurs de nombres?

Merci!

Était-ce utile?

La solution

Pour la monnaie, c’est très simple:

String.Format("{0:C}", value)

Ceci utilisera les informations de culture du système.

Pour les nombres normaux liés aux données, utilisez l'exemple de Mark Glorie . .

Article MSDN

Autres conseils

Je voudrais utiliser le formatage de chaîne. Modifier la configuration de l'application pour répondre aux exigences de l'interface utilisateur est une lourde tâche. SteveX a écrit un excellent article de blog sur le formatage des chaînes. Il est également compatible avec le balisage (aspx) au lieu d’être pertinent uniquement dans le code.

De son message:

String.Format(”{0:$#,##0.00;($#,##0.00);Zero}”, value);

    This will output “$1,240.00″ if passed 1243.50. It will output the 
    same format but in parentheses if the number is negative, and will
    output the string “Zero” if the number is zero.

Ce qui n'est pas exactement ce que vous voulez, mais c'est proche.

Cochez cette .. http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx

Convertit la représentation sous forme de chaîne d'un nombre dans un style spécifié en son équivalent décimal.

Vous pouvez toujours écrire votre propre méthode personnalisée ToString () en tant que méthode d'extension, mais comme vous le mentionnez, utiliser CultureInfo est probablement préférable. Jetez un coup d'oeil ici:

http://msdn.microsoft.com /en-us/library/system.globalization.numberformatinfo.numbernegativepattern.aspx

La page suivante est enregistrée pour la mise en forme de chaîne: http: //idunno.org/archive/2004/14/01/122.aspx

À peu près à mi-chemin, cela donne la réponse:

String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", value);

Pour répondre à votre autre question, je ne modifierais pas le fichier app.config pour le rendre global, pour les raisons indiquées dans les autres réponses.

String.Format(”{0:f;(f);0”, -1);

Cela fonctionne.

DataFormatString="{0:c0}"
  • Les montants négatifs entre parenthèses
  • Mille séparateur - virgule
  • symbole $ devant

Affichez-vous vos données dans Gridview / Datagrids? Si tel est le cas, le formatage peut être appliqué par colonne liée, par exemple:

<asp:BoundField DataFormatString="{##;(##)}"/>

Ceci ne fonctionne qu'avec des nombres entiers cependant ...

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