Maison  >  Article  >  interface Web  >  Pourquoi la conversion de nombres comme 190000009 en mots anglais entraîne-t-elle l'absence du dernier chiffre « 9 » ?

Pourquoi la conversion de nombres comme 190000009 en mots anglais entraîne-t-elle l'absence du dernier chiffre « 9 » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-09 16:44:02829parcourir

Why does converting numbers like 190000009 to English words result in missing the last digit

Nombres JavaScript en mots

Problème

Lors de la tentative de conversion de nombres en mots anglais, un bug survient avec des nombres tels que 190000009, ce qui est erroné converti en « cent quatre-vingt-dix millions ». Le dernier chiffre, « 9 », est absent du résultat.

Explication

Le problème vient des zéros dans le nombre. Lorsque la fonction triConvert rencontre trois zéros consécutifs, elle renvoie la chaîne « dontAddBigSufix ». Cela demande au programme d'omettre le terme pour l'unité correspondante (par exemple, mille, millions, milliards) lors de l'attachement de suffixes aux groupes de chiffres.

Dans le cas de 190000009, les trois zéros du milieu déclenchent le retour de " dontAddBigSufix" pour le deuxième groupe de trois chiffres, qui représente la valeur en millions. Par conséquent, le suffixe « million » n'est pas ajouté et le résultat final ignore le dernier chiffre.

Extrait de code

Le segment de code suivant illustre le problème :

for (b = finlOutPut.length - 1; b >= 0; b--) {
    if (finlOutPut[b] != "dontAddBigSufix") {
        finlOutPut[b] = finlOutPut[b] + bigNumArry[bigScalCntr] + ' , ';
        bigScalCntr++;
    }
    else {
        //replace the string at finlOP[b] from "dontAddBigSufix" to empty String.
        finlOutPut[b] = ' ';
        bigScalCntr++; //advance the counter  
    }
}

Solution

La solution est de vérifier si la valeur bigNumArry correspondante est "million" ou non. Si c'est le cas et que finlOutPut[b] est égal à "dontAddBigSufix", alors finlOutPut[b] doit être remplacé par une chaîne vide au lieu d'un espace. Cela garantit que le suffixe « million » n'est pas ajouté lorsqu'il y a des zéros au milieu du nombre.

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!

Déclaration:
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