Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah penukaran nombor seperti 190000009 kepada perkataan Inggeris mengakibatkan kehilangan digit terakhir "9"?

Mengapakah penukaran nombor seperti 190000009 kepada perkataan Inggeris mengakibatkan kehilangan digit terakhir "9"?

Patricia Arquette
Patricia Arquetteasal
2024-11-09 16:44:02828semak imbas

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

Nombor JavaScript kepada Perkataan

Isu

Apabila cuba menukar nombor kepada perkataan Inggeris, pepijat timbul dengan nombor seperti 190000009, yang tersilap ditukar kepada "seratus sembilan puluh juta." Digit terakhir, "9," tiada daripada keputusan.

Penjelasan

Masalahnya berpunca daripada sifar dalam nombor itu. Apabila fungsi triConvert menemui tiga sifar berturut-turut, ia mengembalikan rentetan "dontAddBigSufix." Ini mengarahkan program untuk meninggalkan istilah untuk unit yang sepadan (cth., ribu, juta, bilion) apabila melampirkan akhiran pada kumpulan digit.

Dalam kes 190000009, tiga sifar tengah mencetuskan pengembalian " dontAddBigSufix" untuk kumpulan kedua tiga digit, yang mewakili nilai juta. Akibatnya, akhiran "juta" tidak ditambahkan dan output akhir melangkau digit terakhir.

Coretan Kod

Segmen kod berikut menunjukkan isu:

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  
    }
}

Penyelesaian

Penyelesaian adalah untuk menyemak sama ada nilai bigNumArry yang sepadan ialah "juta" atau tidak. Jika ya, dan finlOutPut[b] sama dengan "dontAddBigSufix," maka finlOutPut[b] hendaklah digantikan dengan rentetan kosong dan bukannya ruang. Ini memastikan bahawa akhiran "juta" tidak ditambah apabila terdapat sifar di tengah nombor.

Atas ialah kandungan terperinci Mengapakah penukaran nombor seperti 190000009 kepada perkataan Inggeris mengakibatkan kehilangan digit terakhir "9"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn