嘿,我目前有一种货币格式方法:
private string FormatCurrency(double moneyIn)
{
CultureInfo ci = new CultureInfo("en-GB");
return moneyIn.ToString("c", ci);
}
我正在寻求调整这个以缩短字符串,因为货币变得更大。有点像堆栈溢出从999到1k而不是1000(或1.6k而不是1555)。
我认为这是一个相对容易的任务,但有没有内置函数或者你只需要手动操作字符串?
由于
答案 0 :(得分:3)
我会使用以下内容来完成您的需求,我认为没有任何内置可以直接执行此操作!
return (moneyIn > 999) ? (moneyIn/(double)1000).ToString("c", ci) + "k" : moneyIn.ToString("c", ci);
您可能还想将moneyIn / 1000的结果四舍五入到第一个十分位置。
HTH
答案 1 :(得分:1)
框架内置了任何内容。你必须为此实现自己的逻辑。
这个问题经常出现 - 请参阅this问题的答案(格式编号,如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");
}
答案 2 :(得分:0)
您必须编写自己的函数才能执行此操作。它不是内置于.NET中的默认字符串格式化内容。