Donnez vie à vos documents numériques !
 

Conversion nombre en lettres

abracadabraPDF Forums PDF – Général Conversion nombre en lettres

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46007
    mimiz
    Membre

    Bonjour à toute la communauté!
    Ravi d’avoir encore besoin de votre aide :Smiley03:
    Cette fois-ci par contre j’ai essayer de d’abord manipuler un peu de javascript pour avoir ce que je veux avant de vous solliciter.
    Mais je tombe sur des résultats super bizarres que me rendent fou depuis 4 jours! :mur: .
    Donc j’ai récupéré un script pour convertir un nombre en lettres sur ce topic:
    https://abracadabrapdf.net/forum/index.php/topic,2921.msg16517.html#msg16517

    Sauf qu’il ne gère pas les virgules.
    Je l’ai un peu bricolé en étudiant un peu le code sauf que j’ai des erreurs bizarres !
    par exemple sur 40,30 et plein d’autres nombre avec des virgules.
    si quelqu’un veux bien y jeter un coup d’oeil.
    Merci d’avance

Affichage de 25 réponses de 1 à 25 (sur un total de 26)
  • Auteur
    Réponses
  • #65225
    bebarth
    Maître des clés

    bonjour,
    Je suis repartis du fichier original.
    Merci Alex.
    @+
    :bonjour:

    #65226
    Merlin
    Maître des clés

    Excellent bebarth, comme toujours.
    :bravo:

    #65227
    Merlin
    Maître des clés

    Je m’étais penché dessus (avant de me faire griller  :Smiley03:) mais sans vraiment y arriver.
    Par-contre je viens de m’apercevoir que le script ne respecte pas les règles d’accord des nombres ni les traits d’union.
    On peut peut-être faire des concessions pour ces derniers, mais pour les accords… Je sais que les règles françaises sont ubuesques mais il faut bien les respecter…  :mur:

    Je vais m’y re-pencher  :priere:

    20 et 100 s’accordent quand ils sont multipliés par un nombre sans être suivis par un autre nombre : https://leconjugueur.lefigaro.fr/frlesnombres.php

    #65228
    bebarth
    Maître des clés

    …effectivement, je n’ai pas du tout regardé ça ! J’ai pris le script d’Alex tel quel.
    J’ai bien pensé à mettre euro et centime au singulier pour un, mais pas le reste.
    J’essaie de regarder ça demain.
    @+
    :bonjour:

    #65229
    mimiz
    Membre

    Bonjour à tous !!
    Merci bebarth, mais y’a toujours le problème du “un” avant “mille” qui n’est pas très jojo !
    en plus j’aimerai bien que tu m’explique un peu, car je ne comprends pas trop comment t’a fait pour éclater la fonction en deux “init” et “conversion” .
    tu peux m’expliquer un peu comment tout ça marche !?

    #65230
    bebarth
    Maître des clés

    bonjour,
    Je suis parti sur le principe que le script d’Alex est correct, donc je découpe le nombre en 2 parties : avant et après la virgule et je les envois à la fonction d’Alex séparément puis je les rassemble pour les afficher dans le champ.
    Il y a peut-être des lignes inutiles dans le script d’Alex qui pourraient être retirée pour cette application, mais je n’ai pas regardé.
    Dans les scripts de document, “init” n’est pas une fonction, mais un script lu à l’ouverture du document pour initialiser les différentes variables. Une fonction est lue lorsqu’elle est appelée.
    @+
    :bonjour:

    #65231
    bebarth
    Maître des clés

    On peut peut-être faire des concessions pour ces derniers, mais pour les accords… Je sais que les règles françaises sont ubuesques mais il faut bien les respecter…  :mur:

    Je pense traiter la chaîne de caractères finale plutôt que chercher à modifier le script d’Alex, sinon il va y avoir un paquet de conditions avec plein d’exceptions !
    Alors que dans le résultat final on ne traite que le résultat !!!
    @+
    :bonjour:

    #65232
    mimiz
    Membre

    Exactement ! ça va minimiser au max les conditions.
    On attend alors!!!
    Merci d’avance !

    #65233
    bebarth
    Maître des clés

    Merci de me dire si je suis passé à côté de certaines règles !
    @+
    :bonjour:

    #65234
    Merlin
    Maître des clés

    Excellent bebarth, comme toujours.
    :bravo:

    Bis.

    #65235
    mimiz
    Membre

    Bonjour!
    Franchement bravo BB! :bravo:
    et (un) mille merci !!! :geek:
    ……
    ……
    ……
    Sauf que ce “un” il arrive à un autre endroit !  :doute:

    #65236
    bebarth
    Maître des clés

    bonjour,
    Ça ne devrait pas être très compliqué à résoudre, mais je vais essayer de reprendre le script total à ma sauce, car j’ai vu d’autres petits soucis comme par exemple on ne dit pas un million euros, mais un million d’euros. Idem pour milliard (même si on ne les a pas  :geek: ).
    Ça va sûrement être compliqué ce week-end… ce sera certainement en début de semaine prochaine !
    @+
    :bonjour:

    #65237
    Merlin
    Maître des clés

    on ne dit pas un million euros, mais un million d’euros.

    Moi je dis : laisse tomber les euros, le script devrait juste donner un nombre. Si on veut des €, des $ ou autres, il suffit de l’ajouter avant ou après. soit dans le fond de page, soit en l’ajoutant au texte/string final.
    :geek:

    Idem pour milliard (même si on ne les a pas)

    Zut, je ne vais pas pouvoir m’en servir pour mes comptes perso…
    :Smiley03:

    #65238
    Merlin
    Maître des clés

    Voilà un petit script pour capitaliser la première lettre du nombre :

    Code:
    /* script de format */
    // capitalise la première lettre du champ
    var str = event.target.value;
    event.value = str.replace(/(^).{1}/g,function(cWrd){return cWrd.toUpperCase()});

    :Smiley15:

    #65239
    mimiz
    Membre

    Bonjour;
    Je suis d’accord avec merlin. l’idée de changer la monnaie sans retoucher le code est meilleure

    #65240
    bebarth
    Maître des clés

    bonjour,

    … mais je vais essayer de reprendre le script total à ma sauce…

    J’ai commencé et je suis arrivé à peu près à la même logique qu’Alex, j’ai donc conservé pratiquement toute la partie “fonction” !
    Du coup, il y a deux versions : avec et sans monnaie.
    Je n’ai pas testé tous les nombres, mais normalement tu devrais pouvoir écrire jusqu’à 999 trillions et des brouettes…. (999 x 1018).
    Si tu regardes le script, il est prévu pour beaucoup plus (1064) mais je n’avais pas pensé qu’Acrobat était si limité…  :geek:
    Merci de me dire s’il y a encore des erreurs.
    J’ai vu qu’avec la nouvelle orthographe il fallait mettre des tirets partout, mais tant pis. Quelqu’un d’autre s’en chargera s’il le désire !
    @+
    :bonjour:

    #65241
    Merlin
    Maître des clés

    normalement tu devrais pouvoir écrire jusqu’à 999 trillions et des brouettes….

    Échelle longue ou échelle courte ?  :Smiley03:
    https://fr.wikipedia.org/wiki/%C3%89chelles_longue_et_courte
    :Euuuh:  :mur:  :oh:

    #65242
    Merlin
    Maître des clés

    J’ai vu qu’avec la nouvelle orthographe il fallait mettre des tirets partout

    Où as-tu vu ça ?

    En tout cas jusqu’ici ça à l’air correct.
    :bravo:

    #65243
    bebarth
    Maître des clés

    bojour,

    Où as-tu vu ça ?

    A plusieurs endroits :
    https://leconjugueur.lefigaro.fr/frlesnombres.php
    https://www.lalanguefrancaise.com/orthographe/guide-complet-nouvelle-orthographe/
    https://www.cyberentraide.com/nouvelle-orthographe-nombres-lettres/

    La recommandation de 1990 n’était pas obligatoire, je ne sais pas ce qu’il en est de la nouvelle orthographe !
    @+
    :bonjour:

    #65244
    Merlin
    Maître des clés

    La recommandation de 1990 n’était pas obligatoire

    Ouf !
    :geek:

    Mais a priori depuis 1990 c’est plus facile à scripter. Il me parait plus simple de mettre des traits d’union partout que d’en mettre ici mais pas là, sauf si…
    :Euuuh:

    Parce-que certaines règles atteignent quand même des sommets d’absurdité :
    – Certains de ces adjectifs numéraux cardinaux peuvent avoir une valeur ordinale pour exprimer l’année, le jour, les parties d’un ouvrage, le numéro d’une rue, le nom d’un souverain… ils restent alors invariables :
    – un est invariable en nombre mais pas en genre : cinquante et une pages
    – …

    :mur:

    #65245
    bebarth
    Maître des clés

    Parce-que certaines règles atteignent quand même des sommets d’absurdité :
    – Certains de ces adjectifs numéraux cardinaux peuvent avoir une valeur ordinale pour exprimer l’année, le jour, les parties d’un ouvrage, le numéro d’une rue, le nom d’un souverain… ils restent alors invariables :
    – un est invariable en nombre mais pas en genre : cinquante et une pages

    Ces règles sont peut-être un peu compliquées mais personnellement ne me paraissent pas absurdes (peut-être y en a-t-il d’autres qui le sont…).
    Si l’on parle des tomes un, ou des numéros un des rues, je ne vois pas pourquoi on mettrait un “s” à un !
    Idem pour cinquante et une pages qui signifie cinquante plus une… pages !
    Bien qu’adjectif numéral cardinal, “un” qualifie l’unité de base.
    Voici un fichier avec la nouvelle orthographe. j’ai juste rajouté des traits d’union où il en fallait pour garder un script commun.
    Il aurait fallu revoir un peu le script pour en faire un spécifique…
    @+
    :bonjour:

    #65246
    Merlin
    Maître des clés

    OK, mais si on compare avec les règles de l’Anglais il n’y a pas photo !
    :joker:

    En tout cas je viens de prendre une gifle…  :Smiley07:  :Smiley07:
    Dans ce script je viens de découvrir startsWith et replace !!!
    Bien sur on peut s’en passer, mais c’est tellement plus simple.
    :contentdance:

    #65247
    bebarth
    Maître des clés

    OK, mais si on compare avec les règles de l’Anglais il n’y a pas photo !

    parce qu’il y a des règles en anglais ???  :geek:

    …pareil pour endsWith, ça simplifie la vie certaines fois !
    Il y avait également “includes”, mais cette méthode ne fonctionne apparemment plus (du moins je n’ai jamais réussi).
    https://www.w3schools.com/jsref/jsref_includes.asp
    @+
    :bonjour:

    #65248
    mimiz
    Membre

    Franchement !
    Bravo !  :bravo: :bonjour:

    #65249
    bebarth
    Maître des clés

    bonjour,
    Voici une mise à jour du fichier avec une légère modification du script et quelques corrections d’erreurs signalées.
    Du coup, on peut écrire  jusqu’à 999 quintillions (999 * 10^27). On pourrait plus, mais est-ce que ça vaut le coup ??? Il suffit de rallonger la table des préfixes…
    @+
    :bonjour:

Affichage de 25 réponses de 1 à 25 (sur un total de 26)
  • Vous devez être connecté pour répondre à ce sujet.