如何将带小数点的数字输入的数量转换为javascript中的单词? [英] How to convert amount entered in digits with decimal points to words in javascript?

查看:76
本文介绍了如何将带小数点的数字输入的数量转换为javascript中的单词?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将带有小数点的数字输入的金额转换为javascript中的单词?



我目前的代码如下:

< pre lang =cs> function number2text( value ){
var fraction = Math。 round(frac( value )* 100);
var f_text = ;

if (fraction > 0 ){
f_text = AND + Number(fraction) ;
}

返回编号( value )+ + f_text;
}
函数frac(f){
返回 f% 1 ;
}

函数编号(编号)
{
if ((number < 0 )||(数字> 999999999 ))
{
return 数量超出范围!;
}
var Gn = Math.floor(number / 10000000 ); / * Crore * /
number - = Gn * 千万;

var kn = Math.floor(number / 100000 ); / * lakhs * /
number - = kn * 100000 ;

var Hn = Math.floor(number / 1000 ); / * 千* /
number - = Hn * 1000 ;
var Dn = Math.floor(number / 100 ); / * 十(deca)* /
number = number% 100 ; / * Ones * /
var tn = Math.floor(number / 10 );
var one = Math.floor(number 10 );
var res = ;

if (Gn> 0)
{
res + =(Number(Gn)+ CRORE);
}
if (kn> 0)
{
res + =(((res == )? )+
Number(kn) + LAKH);
}
如果(Hn> 0)
{
res + =(((res == )? )+
Number(Hn) + THOUSAND);
}

如果(Dn)
{
res + =(((res == < span class =code-string>
)? )+
Number( Dn)+ HUNDRED);
}


var ones = Array( ONE,< span class =code-string>
TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEEN EIGHTEEN NINETEEN);
var tens = Array( TWENTY THIRTY,< span class =code-string>
FOURTY FIFTY SIXTY SEVENTY EIGHTY NINETY);

if (tn> 0 || one> 0)
{
if (!(res == ))
{
res + = AND;
}
if (tn < 2
{
res + = [tn * 10 + one];
}
else
{

res + = tens [tn];
if (one> 0)
{
res + =( + ones [one]);
}
}
}

if (res ==
{
res = < span class =code-string> ZERO
;
}
return res;
}
函数number2text( value ){
var fraction = Math.round(frac( value )* 100);
var f_text = ;

if (fraction > 0 ){
f_text = AND + Number(fraction) ;
}

返回编号( value )+ + f_text;
}
函数frac(f){
返回 f% 1 ;
}

函数编号(编号)
{
if ((number < 0 )||(数字> 999999999 ))
{
return 数量超出范围!;
}
var Gn = Math.floor(number / 10000000 ); / * Crore * /
number - = Gn * 千万;

var kn = Math.floor(number / 100000 ); / * lakhs * /
number - = kn * 100000 ;

var Hn = Math.floor(number / 1000 ); / * 千* /
number - = Hn * 1000 ;
var Dn = Math.floor(number / 100 ); / * 十(deca)* /
number = number% 100 ; / * Ones * /
var tn = Math.floor(number / 10 );
var one = Math.floor(number 10 );
var res = ;

if (Gn> 0)
{
res + =(Number(Gn)+ CRORE);
}
if (kn> 0)
{
res + =(((res == )? )+
Number(kn) + LAKH);
}
如果(Hn> 0)
{
res + =(((res == )? )+
Number(Hn) + THOUSAND);
}

如果(Dn)
{
res + =(((res == < span class =code-string>
)? )+
Number( Dn)+ HUNDRED);
}


var ones = Array( ONE,< span class =code-string>
TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEEN EIGHTEEN NINETEEN);
var tens = Array( TWENTY THIRTY,< span class =code-string>
FOURTY FIFTY SIXTY SEVENTY EIGHTY NINETY);

if (tn> 0 || one> 0)
{
if (!(res == ))
{
res + = AND;
}
if (tn < 2
{
res + = [tn * 10 + one];
}
else
{

res + = tens [tn];
if (one> 0)
{
res + =( + ones [one]);
}
}
}



// app.alert(res);
return res;
}


if this .getField ( rdoGpAmountType)。 value = = 借方
{
if event .value!=
{
if event 。< span class =code-sdkkeyword> value
== 0
{
this .getField( txtAmountInWords)。 value = ZERO ONLY;
}
其他
{
.getField ( txtAmountInWords)。 value = number2text( this .getField
txtDebitAmount )。 value )+ + ;

}


}

else
{
this .getField( txtAmountInWords). value = ;
}
}

解决方案

看看这个家伙,他似乎走得很远。 br $> b $ b

http://stackoverflow.com/questions / 5529934 / javascript-numbers-to-words [ ^ ]

How to convert amount entered in digits with decimal points to words in javascript?

My current code is as below:

function number2text(value) {
    var fraction = Math.round(frac(value)*100);
    var f_text  = "";

    if(fraction > 0) {
        f_text = "AND "+Number(fraction);
    }

    return Number(value)+" "+f_text;
}
function frac(f) {
    return f % 1;
}

function Number(number)
{
    if ((number < 0) || (number > 999999999))
    {
        return "NUMBER OUT OF RANGE!";
    }
    var Gn = Math.floor(number / 10000000);  /* Crore */
    number -= Gn * 10000000;

    var kn = Math.floor(number / 100000);     /* lakhs */
    number -= kn * 100000;

    var Hn = Math.floor(number / 1000);      /* thousand */
    number -= Hn * 1000;
    var Dn = Math.floor(number / 100);       /* Tens (deca) */
    number = number % 100;               /* Ones */
    var tn= Math.floor(number / 10);
    var one=Math.floor(number % 10);
    var res = "";

    if (Gn>0)
    {
        res += (Number(Gn) + " CRORE");
    }
    if (kn>0)
    {
            res += (((res=="") ? "" : " ") +
            Number(kn) + " LAKH");
    }
    if (Hn>0)
    {
        res += (((res=="") ? "" : " ") +
            Number(Hn) + " THOUSAND");
    }

    if (Dn)
    {
        res += (((res=="") ? "" : " ") +
            Number(Dn) + " HUNDRED");
    }


    var ones = Array("", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX","SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN", "TWELVE", "THIRTEEN","FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN","NINETEEN");
var tens = Array("", "", "TWENTY", "THIRTY", "FOURTY", "FIFTY", "SIXTY","SEVENTY", "EIGHTY", "NINETY");

    if (tn>0 || one>0)
    {
        if (!(res==""))
        {
            res += " AND ";
        }
        if (tn < 2)
        {
            res += ones[tn * 10 + one];
        }
        else
        {

            res += tens[tn];
            if (one>0)
            {
                res += (" " + ones[one]);
            }
        }
    }

    if (res=="")
    {
        res = "ZERO";
    }
    return res;
}
function number2text(value) {
    var fraction = Math.round(frac(value)*100);
    var f_text  = "";

    if(fraction > 0) {
        f_text = "AND "+Number(fraction);
    }

    return Number(value)+" "+f_text;
}
function frac(f) {
    return f % 1;
}

function Number(number)
{
    if ((number < 0) || (number > 999999999))
    {
        return "NUMBER OUT OF RANGE!";
    }
    var Gn = Math.floor(number / 10000000);  /* Crore */
    number -= Gn * 10000000;

    var kn = Math.floor(number / 100000);     /* lakhs */
    number -= kn * 100000;

    var Hn = Math.floor(number / 1000);      /* thousand */
    number -= Hn * 1000;
    var Dn = Math.floor(number / 100);       /* Tens (deca) */
    number = number % 100;               /* Ones */
    var tn= Math.floor(number / 10);
    var one=Math.floor(number % 10);
    var res = "";

    if (Gn>0)
    {
        res += (Number(Gn) + " CRORE");
    }
    if (kn>0)
    {
            res += (((res=="") ? "" : " ") +
            Number(kn) + " LAKH");
    }
    if (Hn>0)
    {
        res += (((res=="") ? "" : " ") +
            Number(Hn) + " THOUSAND");
    }

    if (Dn)
    {
        res += (((res=="") ? "" : " ") +
            Number(Dn) + " HUNDRED");
    }


    var ones = Array("", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX","SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN", "TWELVE", "THIRTEEN","FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN","NINETEEN");
var tens = Array("", "", "TWENTY", "THIRTY", "FOURTY", "FIFTY", "SIXTY","SEVENTY", "EIGHTY", "NINETY");

    if (tn>0 || one>0)
    {
        if (!(res==""))
        {
            res += " AND ";
        }
        if (tn < 2)
        {
            res += ones[tn * 10 + one];
        }
        else
        {

            res += tens[tn];
            if (one>0)
            {
                res += (" " + ones[one]);
            }
        }
    }



    //app.alert(res);
    return res;
}


if (this.getField("rdoGpAmountType").value == "Debit")
{
 if(event.value!="")
{
 if(event.value=="0")
 {
  this.getField("txtAmountInWords").value = "ZERO ONLY";
 }
 else
{
this.getField("txtAmountInWords").value = number2text(this.getField
 ("txtDebitAmount").value)+" "+"ONLY";

}


}

else
{
 this.getField("txtAmountInWords").value="";
}
}

解决方案

Take a look at this guy, he seems to have gotten pretty far.

http://stackoverflow.com/questions/5529934/javascript-numbers-to-words[^]


这篇关于如何将带小数点的数字输入的数量转换为javascript中的单词?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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