簡體   English   中英

如何將int格式化為帶有前導零和逗號的字符串

[英]How to format int into a string with leading Zeros and Commas

我需要將一個int轉換為一個長度為9位+ 2個逗號的字符串。

1將成為000,000,001

12345將成為000,012,345

等等

我知道我可以使用ToString()。PadLeft(...)添加前導零但不知道如何添加逗號而不使用一些if測試。 有沒有更有效的方法來做到這一點?

只是使用:

int myint = 12345;
string formatted = myint.ToString("000,000,000");
int number = 12345;
String result = String.Format("{0:000,000,000}", number);

資源

你可以使用自定義字符串格式,這將是簡單的,但可能不是有效,因為手卷特定格式的代碼:

string text = value.ToString("000,000,000", CultureInfo.InvariantCulture);

請注意使用CultureInfo.InvariantCulture來避免使用當前線程的文化分組字符(和數字)。

手動滾動的一個選擇:

static string ToDigitsAndCommas(int value)
{
    char[] chars = new char[11];
    chars[3] = ',';
    chars[7] = ',';
    int remainder;
    for (int i = 0; i < 9; i++)
    {
        value = Math.DivRem(value, 10, out remainder);
        chars[10 - i - (i / 3)] = (char) (remainder + '0');
    }
    return new string(chars);
}

我建議對此進行基准測試,以確定您是否真的需要它而不是更簡單的代碼:)

只需在ToString()使用格式說明符:

var stringified = yourNumber.ToString("000,000,000");

你會得到零填充的逗號。

使用ToString()並將結果格式指定為參數。

有關詳細信息,請參閱MSDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM