转换罗马数字使用JavaScript到整数 [英] Convert Roman Numeral to Integer using Javascript

查看:217
本文介绍了转换罗马数字使用JavaScript到整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数组,作为罗马​​数字输出:

  VAR细节= lst_details [sltindex] .split(';');
 细节[9]; //是罗马数字,我想它作为一个整数;

细节阵列[9] 是罗马数字,所以我想将它转换为整数。
任何人都知道请帮助我,谢谢。


解决方案

  Number.prototype.toRoman =功能(){
    变种N = Math.floor(本),缬氨酸,S ='',限制= 3999,I = 0;
    V = [1000,900,500,400,100,90,50,40,10,9,5,4,1]
    R = [M,CM,D,CD,C,XC,L,XL,X,九,V,Ⅳ' ,'一世'];
    如果(N< 1 || N'GT;限制)返回'';
    而(ⅰδ13){
        VAL = V [I]
        而(N> = VAL){
            正= VAL;
            S + = R [I]
        }
        如果(N == 0)返回小号;
        ++我;
    }
    返回'';
}
功能rtonum(多个){
    S =字符串(S).toUpperCase();
    如果(s.length→15 || /[^MDCLXVI]/.test(s))返回NaN的;
    变种L = s.length,总和= 0,I = 0,接下来,缬氨酸,
    R = {
        L:1000,D:500,C:100,L:50,X:10,V:5,I:1
    };
    而(ⅰ&下:L){
        VAL = s.charAt(我++);
        如果返回NaN的(R [VAL]!);
        VAL = R [VAL]
        接下来= R [(s.charAt(I)||'N')|| 0;
        如果(下一页> VAL)VAL * = -1;
        总和+ = VAL;
    }
    如果(sum.toRoman()== S)收益总和;
    返回结果为NaN;
}
变种N = rtonum('C');
警报(N);

从<一个href=\"http://stackoverflow.com/questions/9083037/convert-a-number-into-a-roman-numeral-in-javascript\">Convert一些成罗马数字在JavaScript中。

的jsfiddle

I have an array that output as roman number:

 var details = lst_details[sltindex].split(';');
 detail[9];//is roman number and I want it as an integer;

The array of details[9] is a roman numeral so I want to convert it as integer number. Anyone know help me please,thanks.

解决方案

Number.prototype.toRoman= function(){
    var n= Math.floor(this),val,s= '',limit= 3999,i= 0;
    v= [1000,900,500,400,100,90,50,40,10,9,5,4,1],
    r= ['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
    if(n< 1 || n> limit) return '';
    while(i<13){
        val= v[i];
        while(n>= val){
            n-= val;
            s+= r[i];
        }
        if(n== 0) return s;
        ++i;
    }
    return '';
}
function rtonum (s){
    s= String(s).toUpperCase();
    if(s.length> 15 ||  /[^MDCLXVI]/.test(s)) return NaN;
    var L= s.length,sum= 0,i= 0,next,val,
    R={
        M:1000,D:500,C:100,L:50,X:10,V:5,I:1
    };  
    while(i< L){
        val= s.charAt(i++);
        if(!R[val]) return NaN;
        val= R[val];
        next= R[(s.charAt(i) || 'N')] || 0;
        if(next> val) val*= -1;
        sum+= val;
    }
    if(sum.toRoman()== s) return sum;
    return NaN;
}
var n=rtonum('c');
alert(n); 

From Convert a number into a Roman Numeral in javaScript.

jsfiddle

这篇关于转换罗马数字使用JavaScript到整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆