190000009 のような数字を英単語に変換すると、最後の桁「9」が欠落するのはなぜですか?

Patricia Arquette
リリース: 2024-11-09 16:44:02
オリジナル
827 人が閲覧しました

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

JavaScript の数字から単語へ

問題

数字を英語の単語に変換しようとすると、190000009 などの数字でバグが発生し、誤って変換されます。 「1億9千万」に変換されます。最後の数字「9」が結果にありません。

説明

問題は数値内のゼロに起因します。 triConvert 関数は、3 つの連続するゼロに遭遇すると、文字列「dontAddBigSufix」を返します。これは、数字のグループに接尾辞を付けるときに、対応する単位 (千、百万、十億など) の用語を省略するようにプログラムに指示します。

190000009 の場合、中間の 3 つのゼロにより、" が返されます。 dontAddBigSufix」は 3 桁の 2 番目のグループで、100 万の値を表します。その結果、「million」サフィックスは追加されず、最終出力では最後の桁がスキップされます。

コード スニペット

次のコード セグメントは、この問題を示しています。

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  
    }
}
ログイン後にコピー

解決策

解決策は、対応する bigNumArry 値が次の値であるかどうかを確認することです。 「百万」かどうか。そうであり、finlOutPut[b] が「dontAddBigSufix」に等しい場合、finlOutPut[b] はスペースではなく空の文字列に置き換えられる必要があります。これにより、数値の途中にゼロがある場合に「million」という接尾辞が追加されなくなります。

以上が190000009 のような数字を英単語に変換すると、最後の桁「9」が欠落するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート