Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum führt die Umwandlung von Zahlen wie 190000009 in englische Wörter dazu, dass die letzte Ziffer „9' fehlt?

Patricia Arquette
Freigeben: 2024-11-09 16:44:02
Original
827 Leute haben es durchsucht

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

JavaScript-Zahlen in Wörter umwandeln

Problem

Beim Versuch, Zahlen in englische Wörter umzuwandeln, tritt ein Fehler bei Zahlen wie 190000009 auf, was fälschlicherweise der Fall ist umgerechnet in „einhundertneunzig Millionen“. Die letzte Ziffer, „9“, fehlt im Ergebnis.

Erklärung

Das Problem liegt an den Nullen innerhalb der Zahl. Wenn die triConvert-Funktion auf drei aufeinanderfolgende Nullen trifft, gibt sie die Zeichenfolge „dontAddBigSufix“ zurück. Dadurch wird das Programm angewiesen, den Begriff für die entsprechende Einheit (z. B. Tausend, Million, Milliarde) wegzulassen, wenn Suffixe an die Zifferngruppierungen angehängt werden.

Im Fall von 190000009 lösen die drei mittleren Nullen die Rückgabe von „ aus. dontAddBigSufix“ für die zweite Gruppe von drei Ziffern, die den Millionenwert darstellt. Infolgedessen wird das Suffix „Million“ nicht hinzugefügt und in der endgültigen Ausgabe wird die letzte Ziffer übersprungen.

Codeausschnitt

Das folgende Codesegment veranschaulicht das Problem:

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  
    }
}
Nach dem Login kopieren

Lösung

Die Lösung besteht darin, zu prüfen, ob der entsprechende bigNumArry-Wert „Million“ ist oder nicht. Wenn dies der Fall ist und finlOutPut[b] den Wert „dontAddBigSufix“ hat, sollte finlOutPut[b] durch eine leere Zeichenfolge anstelle eines Leerzeichens ersetzt werden. Dadurch wird sichergestellt, dass das Suffix „Million“ nicht hinzugefügt wird, wenn in der Mitte der Zahl Nullen stehen.

Das obige ist der detaillierte Inhalt vonWarum führt die Umwandlung von Zahlen wie 190000009 in englische Wörter dazu, dass die letzte Ziffer „9' fehlt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage