首頁 >後端開發 >C++ >如何在 C# 中輕鬆產生序數(第一、第二、第三等)?

如何在 C# 中輕鬆產生序數(第一、第二、第三等)?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-14 16:16:47732瀏覽

How Can I Easily Generate Ordinal Numbers (1st, 2nd, 3rd, etc.) in C#?

C#中輕鬆建立序數

在C#中直接建立序數(例如,1st、2nd、3rd)可能不受String.Format()或現有函數的直接支援。但是,有一些簡單的方法可以實現這一點。

一種方法是使用如下所示的自訂函數:

<code class="language-csharp">public static string AddOrdinal(int num)
{
    if (num <= 0) return num.ToString(); // 处理0和负数

    string number = num.ToString();
    if (num % 100 == 11 || num % 100 == 12 || num % 100 == 13)
    {
        return number + "th";
    }
    else
    {
        switch (num % 10)
        {
            case 1:
                return number + "st";
            case 2:
                return number + "nd";
            case 3:
                return number + "rd";
            default:
                return number + "th";
        }
    }
}</code>

此函數接收一個整數並檢查其模數以確定適當的序數後綴(“st”、“nd”、“rd”或“th”)。例如:

<code class="language-csharp">Console.WriteLine(AddOrdinal(1));  // 输出:1st
Console.WriteLine(AddOrdinal(2));  // 输出:2nd
Console.WriteLine(AddOrdinal(3));  // 输出:3rd
Console.WriteLine(AddOrdinal(11)); // 输出:11th
Console.WriteLine(AddOrdinal(12)); // 输出:12th
Console.WriteLine(AddOrdinal(13)); // 输出:13th
Console.WriteLine(AddOrdinal(24)); // 输出:24th
Console.WriteLine(AddOrdinal(0));  // 输出:0
Console.WriteLine(AddOrdinal(-5)); // 输出:-5</code>

要注意的是,這段程式碼沒有進行國際化處理,對於序數格式可能不同的其他語言,可能需要進行調整。 改進後的程式碼處理了0和負數的情況,並更準確地處理了11, 12, 13結尾的數字。

以上是如何在 C# 中輕鬆產生序數(第一、第二、第三等)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn