js 数字转罗马数字Util

来源:互联网 发布:java gui聊天程序 编辑:程序博客网 时间:2024/06/05 19:52
function convert(num) {  var numStr = num+"";  var value = "";  if(numStr.length >=4){    value += getQianStr(numStr);    value += getBaiStr(numStr);    value += getShiStr(numStr);    value += getGeStr(numStr);  }else if(numStr.length >=3){    value += getBaiStr(numStr);    value += getShiStr(numStr);    value += getGeStr(numStr);  }else if(numStr.length >=2){    value += getShiStr(numStr);    value += getGeStr(numStr);  }else if(numStr.length >=1){    value += getGeStr(numStr);  } return value;}function getQianStr(numStr){  var value = "";  if(numStr.length >=4){    var mStr = numStr.substr(0, numStr.length - 3);    var mNum = parseInt(mStr);    for(var i = 0; i<mNum;i++){      value+="M";    }  }  return value;}function getBaiStr(numStr){  var value = "";  var baiStr = numStr.substr(numStr.length - 3,1);  var baiNum = parseInt(baiStr);  if(baiNum == 9){    value+="CM";  }else if(baiNum == 4){    value+="CD";  }else{    if(baiNum >= 5){      value+="D";      baiNum = baiNum -5;    }    for(var i = 0; i<baiNum;i++){      value+="C";    }  }  return value;}function getShiStr(numStr){  var value = "";  var shiStr = numStr.substr(numStr.length - 2,1);  var shiNum = parseInt(shiStr);  if(shiNum == 9){    value+="XC";  }else if(shiNum == 4){    value+="XL";  }else{    if(shiNum >= 5){      value+="L";      shiNum = shiNum -5;    }    for(var i = 0; i<shiNum;i++){      value+="X";    }  }  return value;}function getGeStr(numStr){  var value = "";  var geStr = numStr.substr(numStr.length - 1,1);  var geNum = parseInt(geStr);  if(geNum == 9){    value+="IX";  }else if(geNum == 4){    value+="IV";  }else{    if(geNum >= 5){      value+="V";      geNum = geNum -5;    }    for(var i = 0; i<geNum;i++){      value+="I";    }  }  return value;}convert(36);

参考:
Roman Numeral