Javascript 将卢比金额转换为文字

Javascript 将卢比金额转换为文字,javascript,Javascript,我必须在javascript中将卢比金额转换为文字。此处converttohunds是转换百、十和一值的函数 var aUnits = ["Thousand", "Lacs", "Crore", "Arab", "Kharab" ]; var cWords; var nLeft = Math.floor(s); var st = new String(nLeft); for (var i = 0; nLeft > 0; i++) { if (i != 0) { cWords

我必须在javascript中将卢比金额转换为文字。此处converttohunds是转换百、十和一值的函数

var aUnits = ["Thousand", "Lacs", "Crore", "Arab", "Kharab" ];
var cWords; 

var nLeft = Math.floor(s);
var st = new String(nLeft);
for (var i = 0; nLeft > 0; i++) {
  if (i != 0) {
    cWords += ConvertToHundreds(nLeft) + " " + aUnits[i-1] + " " +cWords;
  } else {
    cWords = ConvertToHundreds(nLeft) + " ";
  }

  if (st.length <= 5) {
    nLeft = Math.floor(nLeft / 1000);
  } else if (st.length > 5 && st.length <= 7){
    nLeft = Math.floor(nLeft / 1000) / 100;
    //~ console.log(i);
    i++;
  } else if (st.length > 7 && st.length <= 9) {
    nLeft = Math.floor(nLeft / 1000) /10000;
    i+=2;
  } else if (st.length > 9 && st.length <= 11){
    nLeft = Math.floor(nLeft / 1000) /1000000;
    i+=3;
  } else {
    nLeft = Math.floor(nLeft / 1000) /100000000;
    i+=4;
  }
}

s = Math.round(s * 100) % 100;
var rupee = "Ruppes " + cWords;
if (s > 0)
  cWords = rupee + "and Paise " + ConvertToHundreds(s) + " Only";
else
  cWords = rupee + "Only";

return cWords;
var aUnits=[“千”、“拉丁美洲”、“克罗尔”、“阿拉伯”、“哈拉布”];
var-cWords;
var nLeft=数学楼层;
var st=新字符串(nLeft);
对于(var i=0;nLeft>0;i++){
如果(i!=0){
cWords+=convertto数百(nLeft)+“”+aUnits[i-1]+“”+cWords;
}否则{
cWords=convertto数百(nLeft)+;
}
如果(标准长度5和标准长度7和标准长度9和标准长度0)
cWords=卢比+“和佩斯”+兑换成数百美元+“仅”;
其他的
cWords=卢比+“仅限”;
返回cWords;
此代码不显示千值。
例如:501000.00仅返回五个拉丁美洲国家卢比

印度金额,价格货币显示为基于输入数字的文字 投入:125000000 结果:1.25亿卢比 投入:1250000 结果:12.50 Lac(s)

功能价格(大写)(价格){
var sglDigit=[“零”、“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”],
dblDigit=[“十”、“十一”、“十二”、“十三”、“十四”、“十五”、“十六”、“十七”、“十八”、“十九”],
tensPlace=[、“十”、“二十”、“三十”、“四十”、“五十”、“六十”、“七十”、“八十”、“九十”],
handle_tens=函数(dgt、prevDgt){
返回0==dgt?”:“”+(1==dgt?DBLDIGT[prevDgt]:tensPlace[dgt])
},
handle_utlc=函数(dgt、nxtDgt、denom){
return(0!=dgt&&1!=nxtDgt?“+sglDigit[dgt]:”)+(0!=nxtDgt | | dgt>0?“+denom:”)
};
var str=“”,
digitIdx=0,
数字=0,
nxtDigit=0,
单词=[];
如果(price+=”,则isNaN(parseInt(price)))str=“”;
else if(parseInt(price)>0&&price.length=0;digitIdx--)开关(digit=price[digitIdx]-0,nxtDigit=digitIdx>0?price[digitIdx-1]-0:0,price.length-digitIdx-1){
案例0:
字.推(手柄(数字,nxtDigit,“”);
打破
案例1:
字.推(手柄十(数字,价格[DigitDX+1]);
打破
案例2:
words.push(0!=数字?“+sglDigit[数字]+“百”+(0!=价格[DigitDX+1]&&0!=价格[DigitDX+2]?”和“:”):”;
打破
案例3:
字.推(手柄(数字,nxtDigit,“千”);
打破
案例4:
字.推(手柄十(数字,价格[DigitDX+1]);
打破
案例5:
字.推(手柄(数字,nxtDigit,“Lakh”);
打破
案例6:
字.推(手柄十(数字,价格[DigitDX+1]);
打破
案例7:
字.推(手柄(数字,nxtDigit,Crore));
打破
案例8:
字.推(手柄十(数字,价格[DigitDX+1]);
打破
案例9:
words.push(0!=数字?“+sglDigit[数字]+“百”+(0!=价格[digitIdx+1]| | 0!=价格[digitIdx+2]?”和“:“Crore”):”)
}
str=words.reverse().join(“”)
}else str=“”;
返回str
}
警报(大写价格(125000000));
功能价格(以数量字表示)(价格){
var结果=”,
PricinNum=parseFloat(价格),
priceStr=新字符串(price);
如果(!isNaN(Pricinnum)){
var x=价格分割(“.”),
intLength=x[0]。长度;

result=intLength我更正了缩进,请下次正确缩进。据我所知,函数定义缺失。另外,请提供更多的示例输入和输出,以便每个人都能知道函数应该做什么。jsfiddle会很有帮助
function price_in_words(price) {
            var sglDigit = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"],
                dblDigit = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"],
                tensPlace = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"],
                handle_tens = function(dgt, prevDgt) {
                    return 0 == dgt ? "" : " " + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt])
                },
                handle_utlc = function(dgt, nxtDgt, denom) {
                    return (0 != dgt && 1 != nxtDgt ? " " + sglDigit[dgt] : "") + (0 != nxtDgt || dgt > 0 ? " " + denom : "")
                };

                var str = "",
                    digitIdx = 0,
                    digit = 0,
                    nxtDigit = 0,
                    words = [];
                if (price += "", isNaN(parseInt(price))) str = "";
                else if (parseInt(price) > 0 && price.length <= 10) {
                    for (digitIdx = price.length - 1; digitIdx >= 0; digitIdx--) switch (digit = price[digitIdx] - 0, nxtDigit = digitIdx > 0 ? price[digitIdx - 1] - 0 : 0, price.length - digitIdx - 1) {
                        case 0:
                            words.push(handle_utlc(digit, nxtDigit, ""));
                            break;
                        case 1:
                            words.push(handle_tens(digit, price[digitIdx + 1]));
                            break;
                        case 2:
                            words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != price[digitIdx + 1] && 0 != price[digitIdx + 2] ? " and" : "") : "");
                            break;
                        case 3:
                            words.push(handle_utlc(digit, nxtDigit, "Thousand"));
                            break;
                        case 4:
                            words.push(handle_tens(digit, price[digitIdx + 1]));
                            break;
                        case 5:
                            words.push(handle_utlc(digit, nxtDigit, "Lakh"));
                            break;
                        case 6:
                            words.push(handle_tens(digit, price[digitIdx + 1]));
                            break;
                        case 7:
                            words.push(handle_utlc(digit, nxtDigit, "Crore"));
                            break;
                        case 8:
                            words.push(handle_tens(digit, price[digitIdx + 1]));
                            break;
                        case 9:
                            words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? " and" : " Crore") : "")
                    }
                    str = words.reverse().join("")
                } else str = "";
                return str

        }

        alert(price_in_words(1250000000));

        function price_in_num_words(price) {
            var result = "",
            priceInNum = parseFloat(price),
            priceStr = new String(price);
            if (!isNaN(priceInNum)) {
                var x = priceStr.split("."),
                intLength = x[0].length;
                result = intLength <= 3 ? priceInNum.toFixed(1) : intLength <= 5 ? (priceInNum / 1e3).toFixed(1) + " Thousand" : intLength <= 7 ? (priceInNum / 1e5).toFixed(2) + " Lac(s)" : intLength <= 9 ? (priceInNum / 1e7).toFixed(2) + " Cr(s)" : "More than One Hundred Cr(s)"
            }
            return result
          }
         alert(price_in_num_words(1250000));