begin process at 2010 09 06 04:29:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CONVERTISSEUR CHIFFRES - LETTRES (POUR CHÈQUES PAR EXEMPLE)

CONVERTISSEUR CHIFFRES - LETTRES (POUR CHÈQUES PAR EXEMPLE)


 Information sur la source

Note :
3,67 / 10 - par 3 personnes
3,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Source .NET ( DotNet ) Classé sous :chiffre, lettre, convertisseur Niveau :Débutant Date de création :26/03/2004 Vu / téléchargé :23 592 / 30 721

Auteur : fulljuju

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Voilà, c'est juste un petit code permettant de transformer un truc du type "123.51" en "cent vingt trois euros cinquante et un centimes".
Je me suis moi même inspiré d'une source c++ que j'ai transformée en c# et optimisée (ajout des chiffres après la virgule, et correction des erreurs existantes).

Ca peut servir par exemple pour des impressions de chèques (pour pas avoir le montant à taper à la main...)


 Conclusion

1er code ajouté ! Merci pour le site bien sympa quand on débute et quand on est dans la m...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) PARAMETRE SETTINGS.SETTINGS DÉMO!! par DanMor498
Source avec une capture Source .NET (Dotnet) RICHTEXTBOX D'EDITION C# AVEC COLORISATION SYTAXIQUE par yohan49
Source .NET (Dotnet) AJOUT D'UNE IMAGE DANS UN RICHTEXTBOX SANS PRESS-PAPIER par yohan49
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPOSANT DE TYPE VOYANT/LED par thebigboss
Source avec Zip GÉNÉRER UN CODE BARRE EAN13 ET LE SAUVEGARDER DANS UN PDF (A... par Frounch13

 Sources en rapport avec celle ci

Source avec Zip CONVERSION DE FICHIERS FORTRAN 77 EN FORTRAN 95 par deadhand
Source avec Zip Source .NET (Dotnet) JEU TAQUIN par hwarou
Source avec Zip Source avec une capture Source .NET (Dotnet) MOTUS (JEU DE LETTRES) par Bidou
Source avec Zip Source .NET (Dotnet) CONVERTISSEUR DÉCIMAL/BINAIRE/HEXADÉCIMAL par wererabbit
Source avec Zip Source .NET (Dotnet) CONVERTISSEUR PDF par crack_xp

Commentaires et avis

Commentaire de biloutelinux le 23/12/2008 20:22:44

il manque un break à la fin des switchs, et quelques trucs en plus

Commentaire de phaum1967 le 29/12/2008 17:50:06

Bonjour
etant plus de que débutant, j'ai besoin de ce code dans Visual Web Developer 2008
J'ai donc ajouté tous les éléments à mon projet asp mais comment je l'utilise pour dire à un textbox de faire la conversion en fonction d'un autre textbox?

Merci

Commentaire de nJohn le 05/05/2010 10:54:11

Bonjour, voici une évolution du source proposé.

Nouveautés :
- le code est factorisé
- conversion d'entier en lettres
- conversion de double en lettres avec devise (accordé au singulier pluriel)
- 81 est traduit par "quatre-vingt un" et pas "quatre-vingt et un"
- optimisation des concaténations des chaines de caractères
- gère les valeurs négatives

Cependant ce code ne donne pas la conversion exacte de l'écriture des nombres. Si l'on fait attention aux très nombreuses règles certaines ne sont pas prises en compte (les tirets, accords au pluriel particuliers)

public class NumberToWords
    {
        private static string[] m_Unite = new string[] { "zero ", "un ", "deux ", "trois ", "quatre ", "cinq ", "six ", "sept ", "huit ", "neuf " };
        private static string[] m_FirstDizaine = new string[] { String.Empty, "onze ", "douze ", "treize ", "quatorze ", "quinze ", "seize ", "dix-sept ", "dix-huit ", "dix-neuf " };
        private static string[] m_Dizaine = new string[] { String.Empty, "dix ", "vingt ", "trente ", "quarante ", "cinquante ", "soixante ", "soixante ", "quatre-vingt ", "quatre-vingt " };
        private static string[] m_CentMille = new string[] { "cent ", "cents ", "mille ", "million ", "millions ", "milliard ", "milliards " };

        private static string m_PrefixAnd = "et ";

        private static string[] m_Devise = new string[] { "euro", "euros" };

        private static string[] m_Centime = new string[] { "centime", "centimes" };

        public static string IntegerToFrenchWords(int p_Number)
        {
            if (p_Number == 0)
                return m_Unite[0]; // zéro

            bool isNumberNeg = false;
            if (p_Number < 0)
            {
                isNumberNeg = true;
                p_Number = p_Number * -1;
                // PB si p_Number = -2147483648 => p_Number * -1 = -2147483648,
                // car la valeur max d'un entier est 2147483647 et pas 2147483648
                if (p_Number == Int32.MinValue)
                    throw new ArgumentException("Impossible de convertir en lettres le nombre " + p_Number, "p_Number");
            }
                
            // Déclarations
            int centaine, dizaine, unite, reste, y;
            bool is10or70or90 = false;
            string intInWords = String.Empty;

            reste = (int)p_Number;

            for (int i = 1000000000; i >= 1; i /= 1000)
            {
                y = reste / i;
                if (y != 0)
                {
                    centaine = y / 100;
                    dizaine = (y - centaine * 100) / 10;
                    unite = y - (centaine * 100) - (dizaine * 10);

                    // Centaines
                    if (centaine == 1)
                        intInWords += m_CentMille[0];
                    else if (centaine > 1)
                    {
                        intInWords += m_Unite[centaine];
                        if ((dizaine == 0) && (unite == 0)) intInWords += m_CentMille[1];
                        else intInWords += m_CentMille[1];
                    }

                    // Convertit les dizaines et unités en lettres
                    intInWords += GetUniteAndDizaineWords(dizaine, unite, ref is10or70or90);

                    // Milliers, millions, milliards
                    switch (i)
                    {
                        case 1000000000:
                            if (y > 1) intInWords += m_CentMille[6];
                            else intInWords += m_CentMille[5];
                            break;
                        case 1000000:
                            if (y > 1) intInWords += m_CentMille[4];
                            else intInWords += m_CentMille[3];
                            break;
                        case 1000: // cas particulier si unité = 1 -> pas de préfix "un"
                            intInWords = unite == 1 ? m_CentMille[2] : String.Concat(intInWords, m_CentMille[2]);
                            break;
                    }
                }

                reste -= y * i;
                is10or70or90 = false;
            }

            if (isNumberNeg)
                intInWords = "moins " + intInWords;

            return intInWords;
        }

        public static string CurrencyNumberToFrenchWords(double p_Number)
        {
            if (p_Number == 0)
                return m_Unite[0]; // zéro

            // Déclarations
            int dizaine, unite;
            bool is10or70or90 = false;
            string intInWords = String.Empty;

            // Récupère la partie entière et détermine la devise au singulier/pluriel
            int partEntiere = (int)p_Number;
            string devise = partEntiere > 1 ? m_Devise[1] : m_Devise[0];

            // Récupère la partie entière
            intInWords = IntegerToFrenchWords(partEntiere);

            // Traitement de la virgule
            decimal chiffreDec;
            chiffreDec = (decimal)(p_Number * 100) % 100;
            dizaine = (int)(chiffreDec) / 10;
            unite = (int)chiffreDec - (dizaine * 10);

            // Convertit les dizaines et unités en lettres
            string decInWords = GetUniteAndDizaineWords(dizaine, unite, ref is10or70or90);

            if (decInWords == String.Empty)
                return String.Concat(intInWords, devise);
            else if (dizaine == 0 && unite == 1)
                return String.Format("{0}{1} et {2}{3}", intInWords, devise, decInWords, m_Centime[0]);
            else
                return String.Format("{0}{1} et {2}{3}", intInWords, devise, decInWords, m_Centime[1]);
        }

        private static string GetUniteAndDizaineWords(int p_Dizaine, int p_Unite, ref bool p_Is10or70or90)
        {
            string numberInWords = String.Empty;

            // dizaines
            if (p_Dizaine == 1) // Flag la dizaine particulière
            {
                p_Is10or70or90 = true;
            }
            else if (p_Dizaine > 1)
            {
                // Concatène avec la dizaine appropriée
                numberInWords += m_Dizaine[p_Dizaine];

                if (p_Dizaine == 7 || p_Dizaine == 9) // Flag la dizaine particulière
                    p_Is10or70or90 = true;
            }


            // unités
            if (p_Unite == 0 && p_Is10or70or90)
            {
                numberInWords += m_Dizaine[1]; // dix
            }
            else if (p_Unite == 1)
            {
                if (p_Dizaine == 7) numberInWords = String.Concat(numberInWords, m_PrefixAnd, m_FirstDizaine[p_Unite]);
                else
                    if (p_Is10or70or90) numberInWords += m_FirstDizaine[p_Unite];
                    else if (p_Dizaine == 8) numberInWords = String.Concat(numberInWords, m_Unite[p_Unite]); // cas particulier 81 pas de "et"
                    else if (p_Dizaine > 1) numberInWords = String.Concat(numberInWords, m_PrefixAnd, m_Unite[p_Unite]);
                    else numberInWords += m_Unite[1];
            }
            else if (p_Unite > 1)
            {
                if (p_Is10or70or90) numberInWords += m_FirstDizaine[p_Unite];
                else numberInWords += m_Unite[p_Unite];
            }

            return numberInWords;
        }
}

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

convertir le chiffre en lettre par le langage c [ par princered ] monsieur et madame je dois r&#233;aliser un programme en&nbsp;C qui &#233;crit les chiffres en lettres jusqu'&#224; 99 999 999. Alignement de chiffre dans un RichTextbox [ par PhoeniXX52 ] boujour tout le monde, J'ai un petit prob avec les richtextbox. J'aimerais pouvoir aligner mes chiffres d'une facture dans le richtextbo selon la vir Police de caractère [ par Lumina94 ] Je suis &#224; la recherche d'une police de caract&#232;res pour &#233;crire avec les lettres de l'alphabet des sourds. On tape la lettre "A" et c'est code ascii d'une lettre [ par paloxicide ] comment renvoie t'on le code ascii d'une lettre par 'A' Baseline [ par zarmin ] Bonjour, Je dois faire un programme qui cr&#233;&#233;e une image avec une lettre dans une case avec la "base line" et exporter cette image J'ai r&# Recherche d'occurences d'une lettre dans une phrase [ par Acidkepler ] Bonjour, avec la propri&#233;t&#233; Length, je voudrais entrer une lettre dans un textbox et qu'il me donne le nombre de&nbsp; lettre( celle que j'ai Créer un raccourci clavier C# pour un onglet [ par moi9987 ] Bonjour,Je d&#233;veloppe une application en C# sous Visual Studio .Net et j'aimerai pouvoir cr&#233;er un raccourci clavier (ex: alt+lettre) me perme Mettre UNE lettre en couleur et en gras dans un champ de texte [ par Yoteco ] Bonjour,Je suis entrain de d&#233;velopper un interpreteur syntaxique et lorsque l'utilisateur entre une lettre non autoris&#233; j'aimerais la mettre Verif type [ par aposfa ] Bonsoir tout le monde Je voudrais tester si le caractere tapé par l'utilisateur est un chiffre, sachant que ma textbox n'accepte q'un caractere, donc Decimal [ par emmanuel9 ] Bonjour &#224; tous, J'ai un champs sous sql server qui est DECIMAL(10,2), d'apr&#232;s ce que j'ai compris ca me permet de mettre un nombre de entier


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales