我有以下情况。十进制值需要显示为货币,但包括适当的货币符号和符号,因此:
- -45.23 显示为 -£45.23
- 45.23 显示为 +£45.23
货币符号必须来自System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
。我有这个,但我找不到交换符号和货币符号的方法:
string s1 = string.Format(@"{1}{0:+#,##0.00;-#,##0.00}", 45.09M,
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol);
Console.WriteLine(s2);
string s2 = string.Format(@"{1}{0:+#,##0.00;-#,##0.00}", -45.09M,
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol);
Console.WriteLine(s2);
输出:
£+45.09
£-45.09
我想:
+£45.09
-£45.09
更新
有人发布了关于该属性的另一个答案NumberFormatInfo.CurrencyPositivePattern
,看起来很有希望,特别是因为微软似乎忽略了该NumberFormatInfo.CurrencyNegativePattern
属性包含用于呈现负号的各种选项的可能性。但是,NumberFormatInfo.CurrencyPositivePattern
不包括包含正号的选项!该死。感谢提到它的人,但删除了他们的评论。尽管如此,我还是学到了一个人。