我正在編寫一個腳本來將數字轉換爲羅馬數字。出於某種原因,當我使用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');
就是這樣。我知道這一定很簡單。謝謝! – 2014-10-03 03:32:56