如何将带小数点的数字输入的数量转换为javascript中的单词? [英] How to convert amount entered in digits with decimal points to words in 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屋!