首頁 >後端開發 >C++ >如何在 C# 中將數字轉換為單字?

如何在 C# 中將數字轉換為單字?

Barbara Streisand
Barbara Streisand原創
2025-01-24 14:11:08526瀏覽

How Can I Convert Numbers to Words in C#?

C# 中的數字轉文字轉換

將數值轉換為其對應的文字形式是程式設計中的常見任務。這種轉換在各種場景中特別有用,例如產生發票、自動語音播報或處理語音命令。

一種方法是結合使用模算術、條件語句和預定義數組或字典來將數字和數字組映射到其對應的文字表示形式。以下是用 C# 實作的範例:

<code class="language-csharp">public static string NumberToWords(int number)
{
    // 处理零和负数的特殊情况
    if (number == 0)
        return "zero";
    else if (number < 0)
        return "minus " + NumberToWords(-number);

    string words = "";

    // 处理百万
    if (number >= 1000000)
    {
        words += NumberToWords(number / 1000000) + " million ";
        number %= 1000000;
    }

    // 处理千位
    if (number >= 1000)
    {
        words += NumberToWords(number / 1000) + " thousand ";
        number %= 1000;
    }

    // 处理百位
    if (number >= 100)
    {
        words += NumberToWords(number / 100) + " hundred ";
        number %= 100;
    }

    // 处理剩余数字
    if (number > 0)
    {
        if (words != "")
            words += "and ";

        string[] units = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
        string[] tens = { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };

        if (number < 20)
            words += units[number];
        else
        {
            words += tens[number / 10];
            if (number % 10 > 0)
                words += "-" + units[number % 10];
        }
    }

    return words.Trim();
}</code>

要使用此方法,只需提供一個整數作為參數,它將傳回該數字對應的文字形式。例如,NumberToWords(123) 將回傳 "one hundred and twenty-three",NumberToWords(-543) 將回傳 "minus five hundred and forty-three"。 程式碼已改進,處理了連接詞 "and" 的使用以及對負數和零的更清晰處理。 Trim() 方法用來移除多餘的空格。

以上是如何在 C# 中將數字轉換為單字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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