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"가 빠졌습니다.

설명

문제는 숫자 안의 0에서 비롯됩니다. triConvert 함수는 세 개의 연속된 0을 발견하면 "dontAddBigSufix" 문자열을 반환합니다. 이는 숫자 그룹에 접미사를 붙일 때 해당 단위(예: 천, 백만, 십억)에 대한 용어를 생략하도록 프로그램에 지시합니다.

190000009의 경우 가운데 세 개의 0은 " dontAddBigSufix"는 백만 값을 나타내는 두 번째 세 자리 그룹입니다. 결과적으로 "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]는 공백 대신 빈 문자열로 대체되어야 합니다. 이렇게 하면 숫자 중간에 0이 있을 때 "백만" 접미사가 추가되지 않습니다.

위 내용은 190000009와 같은 숫자를 영어 단어로 변환하면 마지막 숫자 '9'가 누락되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿