Maison > développement back-end > C++ > Comment puis-je convertir des nombres en mots en C# ?

Comment puis-je convertir des nombres en mots en C# ?

Barbara Streisand
Libérer: 2025-01-24 14:11:08
original
559 Les gens l'ont consulté

How Can I Convert Numbers to Words in C#?

Conversion de nombres en texte en C#

La conversion de valeurs numériques vers leur forme littérale correspondante est une tâche courante en programmation. Cette conversion est particulièrement utile dans divers scénarios, tels que la génération de factures, l'automatisation des annonces vocales ou le traitement des commandes vocales.

Une approche consiste à utiliser une combinaison d'arithmétique modulaire, d'instructions conditionnelles et de tableaux ou dictionnaires prédéfinis pour mapper les nombres et les groupes de nombres à leurs représentations littérales correspondantes. Voici un exemple implémenté en 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>
Copier après la connexion

Pour utiliser cette méthode, fournissez simplement un entier comme paramètre et il renverra l'équivalent littéral de ce nombre. Par exemple, NumberToWords(123) renverra « cent vingt-trois » et NumberToWords(-543) renverra « moins cinq cent quarante-trois ». Le code a été amélioré pour gérer l'utilisation du connecteur "et" et une gestion plus claire des nombres négatifs et zéro. La méthode Trim() est utilisée pour supprimer les espaces supplémentaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal