String.Format("{0:C2}", -1234)(货币格式)将负数视为正数
我正在使用 String.Format("{0:C2}", -1234)
来格式化数字。
它总是将金额格式化为正数,而我希望它变成 $ - 1234
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我正在使用 String.Format("{0:C2}", -1234)
来格式化数字。
它总是将金额格式化为正数,而我希望它变成 $ - 1234
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我说的正确吗?它将它放在括号中,即将其格式化为
($1,234.00)
? 如果是这样,我相信这就是美国的预期行为。不过,您可以创建自己的
NumberFormatInfo
,但它的行为方式并非如此。 获取“大部分正确”的现有NumberFormatInfo
,调用Clone()
制作可变副本,然后设置CurrencyNegativePattern
适当(我认为您想要值 2)。例如:
这将打印 $-1,234.00。 如果您确实想要 $-1234,则需要设置
CurrencyGroupSizes
属性为new int[]{0}
并使用"{0:C0}"
而不是 < code>"{0:C2}" 作为格式字符串。编辑:这是一个您可以使用的辅助方法,它基本上做同样的事情:
Am I right in saying it's putting it in brackets, i.e. it's formatting it as
($1,234.00)
? If so, I believe that's the intended behaviour for the US.However, you can create your own
NumberFormatInfo
which doesn't behave this way. Take an existingNumberFormatInfo
which is "mostly right", callClone()
to make a mutable copy, and then set theCurrencyNegativePattern
appropriately (I think you want value 2).For example:
This prints $-1,234.00. If you actually want exactly $-1234, you'll need to set the
CurrencyGroupSizes
property tonew int[]{0}
and use"{0:C0}"
instead of"{0:C2}"
as the format string.EDIT: Here's a helper method you can use which basically does the same thing:
另一个简单的选项是手动指定格式字符串。
或者,如果货币符号需要作为参数,您可以这样做
Another simple option is manually specify the format string.
Or, if the currency symbol needs to be a parameter, you could do this
我想我会简单地使用:(
在 Microsoft.VisualBasic.Strings 模块中)
或者用更短的话来说(这是我实际要使用的):
或者我将为自己创建一个自定义格式货币函数,该函数使用传递我的自定义参数的 VB 函数。
有关更多详细信息,请查看 FormatCurrency 函数 (Visual Basic) 在 msdn.
I think I will simply use:
(in Microsoft.VisualBasic.Strings module)
Or in shorter words (this is what im actually going to use):
Or I will make myself a custom formatcurrency function that uses the VB function passing my custom params.
For further details take a look at the FormatCurrency Function (Visual Basic) in the msdn.