使用.ToString()在C#中格式化十进制字符串

使用.ToString()在C#中格式化十进制字符串,c#,decimal,string-formatting,tostring,currency-formatting,C#,Decimal,String Formatting,Tostring,Currency Formatting,我有一个存储在十进制结果中的金额: 例如,十进制结果=1935698.27 如何使用.ToString()将其格式化为字符串,使其看起来像这样:R1935698,27 它需要执行以下操作: 将R(注意空格)添加到字符串的前面 添加空格将值分组为3(即R 00 000,00) 用, 该格式符合南非兰特货币格式 这就是我所拥有的: decimal result = 1935698.27; string strResult = result.ToString("What should I put

我有一个存储在十进制
结果中的金额

例如,十进制结果=1935698.27

如何使用
.ToString()
将其格式化为
字符串
,使其看起来像这样:
R1935698,27

它需要执行以下操作:

  • R
    (注意空格)添加到
    字符串的前面
  • 添加空格将值分组为3(即
    R 00 000,00
该格式符合南非兰特货币格式

这就是我所拥有的:

decimal result = 1935698.27;
string strResult = result.ToString("What should I put here?"); // Need help

// Expected strResult = "R 1 935 698,27"

非常感谢您的帮助

这是内置的-只需使用南非文化和


请参阅。

这是内置的-只需使用南非文化和


请参阅。

这不会在
R
和金额之间添加空格。它会-请参阅小提琴。我将输出复制/粘贴到答案中。@BarryMichaelDoyle如果您查看货币说明符的文档,您可以看到如何创建自定义
NumberFormatInfo
,以创建您喜欢的任何格式。框架对每个区域性都有一个默认值是有帮助的,因此通常不需要这样做。这不会在
R
和数量之间添加空格。它确实-请看小提琴。我将输出复制/粘贴到答案中。@BarryMichaelDoyle如果您查看货币说明符的文档,您可以看到如何创建自定义
NumberFormatInfo
,以创建您喜欢的任何格式。框架对每个区域性都有一个默认值是有帮助的,因此通常不需要这样做。
var result = 1935698.27m;
var ci = new CultureInfo("en-ZA");
var strResult = result.ToString("C", ci);
// strResult is R 1 935 698,27