Suis-je en droit de dire que c'est de la mettre entre parenthèses, c'est à dire qu'il est formater en tant que ($1,234.00) ? Si oui, je crois que c'est le but de comportement pour les états-unis.
Toutefois, vous pouvez créer votre propre NumberFormatInfo qui ne se comportent pas de cette façon. Prendre un NumberFormatInfo qui est "plutôt de droite", appel Clone() de faire une mutable copier, puis définissez la CurrencyNegativePattern de manière appropriée (je pense que vous voulez de valeur 2).
Ce imprime $-1,234.00. Si vous voulez vraiment exactement $-1234, vous aurez besoin de définir les CurrencyGroupSizes propriété new int[]{0} et l'utilisation "{0:C0}" au lieu de "{0:C2}" comme chaîne de format.
EDIT: Voici une méthode d'assistance que vous pouvez utiliser ce qui se fait de la même chose:
Excellente capture. J'ai couru rapidement un string.Format ("{0:C2}', -1234) à boo, ai-$1,234.00' et de la pensée de Shimmy a été d'une certaine manière erronée (désolé Shimmy). Je ne savais pas que le Canada et les US ont divergé sur la NumberFormat.CurrencyNegativePattern. Je veux tout faire en ligne. Aussi, je veux obtenir un résultat au format décimal négatifs avec 2 zéros non significatifs (c'est à dire $-1234.56) Si vous voulez faire tout en un seul appel, vous aurez besoin de mettre cela dans une méthode d'aide quelque part. Je ne vois pas comment vous avez fait preuve d'2 zéros dans "$-1234.56". Vous pourriez vouloir mettre à jour votre question à montrer ce que vous en fait, vous voulez (tant que vous ne voulez pas $-1234, contrairement à la question). BTW, oui, c'est de mettre entre parenthèses, c'est bizarre. Il n'est pas particulièrement bizarre - c'est la façon dont les valeurs négatives sont représentées dans les différents systèmes de comptabilité.
Une autre option simple est de spécifier manuellement la chaîne de format.
String.Format("{0:$#,##0.00}",-1234)
Ou, si le symbole de la devise doit être un paramètre, vous pouvez le faire
String.Format("{0:"+ symbol +"#,##0.00}",-1234)
Belle. Exactement ce dont j'avais besoin :] C'est une excellente réponse. Merci!!!! Que diriez -"{0:$#,0.00}"? Il semble faire de même pour moi, et je me demande ce cas, je suis absent. Microsoft: des choses Simples, faites complexe.
Suis-je en droit de dire que c'est de la mettre entre parenthèses, c'est à dire qu'il est formater en tant que
($1,234.00)
? Si oui, je crois que c'est le but de comportement pour les états-unis.Toutefois, vous pouvez créer votre propre
NumberFormatInfo
qui ne se comportent pas de cette façon. Prendre unNumberFormatInfo
qui est "plutôt de droite", appelClone()
de faire une mutable copier, puis définissez laCurrencyNegativePattern
de manière appropriée (je pense que vous voulez de valeur 2).Par exemple:
Ce imprime $-1,234.00. Si vous voulez vraiment exactement $-1234, vous aurez besoin de définir les
CurrencyGroupSizes
propriéténew int[]{0}
et l'utilisation"{0:C0}"
au lieu de"{0:C2}"
comme chaîne de format.EDIT: Voici une méthode d'assistance que vous pouvez utiliser ce qui se fait de la même chose:
Je veux tout faire en ligne. Aussi, je veux obtenir un résultat au format décimal négatifs avec 2 zéros non significatifs (c'est à dire $-1234.56)
Si vous voulez faire tout en un seul appel, vous aurez besoin de mettre cela dans une méthode d'aide quelque part. Je ne vois pas comment vous avez fait preuve d'2 zéros dans "$-1234.56". Vous pourriez vouloir mettre à jour votre question à montrer ce que vous en fait, vous voulez (tant que vous ne voulez pas $-1234, contrairement à la question).
BTW, oui, c'est de mettre entre parenthèses, c'est bizarre.
Il n'est pas particulièrement bizarre - c'est la façon dont les valeurs négatives sont représentées dans les différents systèmes de comptabilité.
OriginalL'auteur Jon Skeet
Une autre option simple est de spécifier manuellement la chaîne de format.
Ou, si le symbole de la devise doit être un paramètre, vous pouvez le faire
C'est une excellente réponse. Merci!!!! Que diriez -"{0:$#,0.00}"? Il semble faire de même pour moi, et je me demande ce cas, je suis absent.
Microsoft: des choses Simples, faites complexe.
OriginalL'auteur epotter
Je pense que je vais tout simplement utiliser:
(dans Microsoft.VisualBasic.Les chaînes de module)
Ou à plus court de mots (c'est ce qui im va effectivement utiliser):
Ou je vais me faire un custom formatcurrency fonction qui utilise la VB fonction passant mes paramètres personnalisés.
Pour plus de détails, jetez un oeil à la FormatCurrency Fonction (Visual Basic) dans la msdn.
OriginalL'auteur Shimmy