숫자를 로마 숫자로 변환하는 스크립트 작업을하고 있습니다. 어떤 이유로 2 자리 숫자로 작업 할 때 예상 한 결과 대신 NaN이 반환됩니다. 2 자리 숫자는 하위 문자열을 사용하여 분할되어 현재 숫자로 변환되지 않지만 Number() 또는 parseInt()를 사용하여 문자열을 숫자로 변환하더라도 NaN이 중지되지 않습니다. 나는 틀린 일을해야만한다. 누군가 제발 도와주세요. 코드는 여기에서 찾을 수 있습니다 :JS 번호에서 로마 숫자 스크립트로 NaN 오류가 발생했습니다.
function answer(line){
var roman;
if(line.length == 1){
singleDigit(line);
}else if(line.length == 2){
var firstDigit = line.substr(0,1);
var secondDigit = line.substr(1,2);
roman = twoDigit(firstDigit);
roman += singleDigit(secondDigit);
}else if(line.length == 3){
}else if(line.length == 4){
}
function singleDigit(line){
if(line == '4'){
roman = 'IV';
}else if(line == '9'){
roman = 'IX';
}else{
if (line/5 >= 1){
roman = 'V';
var singles = ones(line - 5, 'I');
roman += singles;
}else{
roman = ones(line, 'I');
}
}
}
function ones(num, char){
var romOnes ='';
for(var i=0; i<num;i++){
romOnes += char;
}
return romOnes;
}
function twoDigit(line){
if(line == '4'){
roman = 'XL';
}else if(line == '9'){
roman = 'XC';
}else{
if (line/5 >= 1){
roman = 'L';
var singles = ones(line - 5, 'X');
roman += singles;
}else{
roman = ones(line, 'X');
}
}
}
alert(roman);
}
answer('42');
를 참조하십시오. 나는 그것이 단순해야만한다는 것을 알았다. 감사! –