C#中的货币格式缩短输出字符串

嘿,我目前有一种货币格式方法:

private string FormatCurrency(double moneyIn) { CultureInfo ci = new CultureInfo("en-GB"); return moneyIn.ToString("c", ci); } 

我正在寻求调整这个以缩短字符串,因为货币变得更大。 有点像堆栈溢出从999到1k而不是1000(或1.6k而不是1555)。

我想这是一个相对容易的任务,但有没有内置的function,或者你只需​​要手动操作字符串?

谢谢

我将使用以下内容来完成您的需求,我认为没有任何内置可以直接执行此操作!

 return (moneyIn > 999) ? (moneyIn/(double)1000).ToString("c", ci) + "k" : moneyIn.ToString("c", ci); 

您可能还想将moneyIn / 1000的结果舍入到1个decmial位置。

HTH

框架内置了任何内容。 您必须为此实现自己的逻辑。

这个问题经常出现 – 请参阅此问题的答案(格式编号,如StackoverFlow(四舍五入到K后缀))。

 // Taken from the linked question. Thanks to SLaks static string FormatNumber(int num) { if (num >= 100000) return FormatNumber(num / 1000) + "K"; if (num >= 10000) { return (num / 1000D).ToString("0.#") + "K"; } return num.ToString("#,0"); } 

您必须编写自己的函数才能执行此操作。 它没有内置到.NET中的默认字符串格式化内容中。