숫자를 영어 단어로 변환하려고 하면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!