我想问一下,如果值为0,有没有办法阻止插入美元符号?
我正在使用字符串函数Format
来使货币符号@string.Format("{0:C}",0))
更新我的输出是$ 0.00
答案 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
。这样做的一个结果是,您不能依赖系统根据线程文化选择要包含的货币符号;您必须将其直接包含在格式字符串中。