2010-04-22 51 views
1

嘿,我現在有一個貨幣格式的方法:貨幣格式,縮短輸出字符串

private string FormatCurrency(double moneyIn) 
{ 
    CultureInfo ci = new CultureInfo("en-GB"); 

    return moneyIn.ToString("c", ci); 
} 

我期待這個適應縮短字符串作爲貨幣獲得的更大。有點像堆棧溢出從999到1k而不是1000(或1.6k而不是1555)。

我想這是一個相對簡單的任務,但是有沒有內置的函數,或者你只需​​要手動操作字符串?

謝謝

回答

3

我會使用以下來完成你所需要的,我不認爲有任何內容直接做到這一點!

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

您可能還想將moneyIn/1000的結果舍入到1個decmial的地方。

HTH

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"); 
} 
0

你將不得不編寫自己的功能來做到這一點。它不是內置於.NET中的默認字符串格式化內容。