C#货币格式
示例
“c”(或货币)格式说明符将数字转换为代表货币金额的字符串。
string.Format("{0:c}", 112.236677) //$112.23-默认为系统
精确
默认值为2。使用c1,c2,c3等控制精度。
string.Format("{0:C1}", 112.236677) //$112.2 string.Format("{0:C3}", 112.236677) //$112.237 string.Format("{0:C4}", 112.236677) //$112.2367 string.Format("{0:C9}", 112.236677) //$112.236677000
货币符号
传递CultureInfo实例以使用自定义区域性符号。
string.Format(new CultureInfo("en-US"), "{0:c}", 112.236677); //$112.24 string.Format(new CultureInfo("de-DE"), "{0:c}", 112.236677); //112,24€ string.Format(new CultureInfo("hi-IN"), "{0:c}", 112.236677); //₹112.24
使用任何字符串作为货币符号。使用NumberFormatInfo提供了自定义的货币符号。
NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat; nfi = (NumberFormatInfo) nfi.Clone(); nfi.CurrencySymbol = "?"; string.Format(nfi, "{0:C}", 112.236677); //?112.24 nfi.CurrencySymbol = "?%^&"; string.Format(nfi, "{0:C}", 112.236677); //?%^&112.24
货币符号的位置
将CurrencyPositivePattern用于正值,将CurrencyNegativePattern用于负值。
NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat; nfi.CurrencyPositivePattern = 0; string.Format(nfi, "{0:C}", 112.236677); //$112.24-默认 nfi.CurrencyPositivePattern = 1; string.Format(nfi, "{0:C}", 112.236677); //112.24$ nfi.CurrencyPositivePattern = 2; string.Format(nfi, "{0:C}", 112.236677); //$112.24 nfi.CurrencyPositivePattern = 3; string.Format(nfi, "{0:C}", 112.236677); //112.24$
负模式用法与正模式相同。更多用例请参考原始链接。
自定义十进制分隔符
NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat; nfi.CurrencyPositivePattern = 0; nfi.CurrencyDecimalSeparator = ".."; string.Format(nfi, "{0:C}", 112.236677); //$112..24