如果值为0,如何防止插入货币符号?

时间:2014-09-02 18:42:15

标签: c# c#-4.0

我想问一下,如果值为0,有没有办法阻止插入美元符号?

我正在使用字符串函数Format来使货币符号@string.Format("{0:C}",0))更新我的输出是$ 0.00

2 个答案:

答案 0 :(得分:4)

制作一个扩展方法来执行此操作:

public static string ToCurrency(this int value)
{
   return value == 0 ? value.ToString("N2") : value.ToString("C");
}

答案 1 :(得分:2)

您可以使用由;分隔不同部分的三部分自定义格式字符串。第一部分描述了应用于正数的格式;第二个适用于负数;第三个适用于零:

const string format = "{0:$#,0.00;-$#,0.00;0.00}";

string.Format(format, 1.23d) // =>  $1.23
string.Format(format, -1.23d) // => -$1.23
string.Format(format, 0d) // => 0.00

遗憾的是,这仅适用于自定义格式,这意味着您无法在各个部分中使用内置说明符,如C。这样做的一个结果是,您不能依赖系统根据线程文化选择要包含的货币符号;您必须将其直接包含在格式字符串中。