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

Bar*_*yle 1 c# decimal tostring string-formatting currency-formatting

我有一个以十进制形式存储的金额result

例如。 decimal result = 1935698.27;

如何将其格式化为Stringusing.ToString()使其看起来像这样:R 1 935 698,27

它需要执行以下操作:

  • 添加R(注意空格)到前面String
  • 添加空格以将值分组为 3(即R 00 000 000 000,00
  • 替换.,

此格式根据南非兰特货币格式进行设置。

这就是我所拥有的:

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

// Expected strResult = "R 1 935 698,27"
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢!

Cha*_*ger 5

这是内置的 - 仅使用南非文化和货币格式说明符

var result = 1935698.27m;
var ci = new CultureInfo("en-ZA");
var strResult = result.ToString("C", ci);
// strResult is R 1 935 698,27
Run Code Online (Sandbox Code Playgroud)

看到这个小提琴