如何在C#.NET中将负值转换为$格式

时间:2011-03-01 10:21:36

标签: c#

当我使用Double之类的正10, 15, 20值并使用此公式转换为$时:

String Val=Convert.ToDouble("10").ToString("c")

然后它返回当前值,但如果我的值为-10,则返回($10)。它会自动附加()并在此值之间为负double值添加值。

谁能告诉我如何处理这个问题?

3 个答案:

答案 0 :(得分:1)

这是系统区域特定设置,一般来说,在代码中覆盖它并不是一个好主意,因为用户决定在控制面板中使用()而不是 - 来查看底片。

如果你真的想要,可以在ToString的重载中使用NumberFormatInfo参数,但不要这样做:)

答案 1 :(得分:0)

您可以通过修改此

来更改它

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

System.Treading.Thread.CurrentThread.Culture.NumberFormatInfo.CurrencyNegativePattern = "(${0})";

答案 2 :(得分:0)

这是播下负货币数量的标准会计方式。 您应该可以通过更改货币的Windows设置来自行更新。

如果您想拥有明确特定的格式,可以尝试

var val = 10.0d; var str = val.ToString(“$#0。##”)

或类似。

John Sheehan有一套备忘单,可以方便快速地参考 http://john-sheehan.com/blog/