JAVASCRIPT 数字转换成中文大写
2008-05-15 16:59
363 查看
在网上找了一段代码做了些改动,效果还不错
function Transform(number)
{
number=new String(parseFloat(number).toFixed(2));
//分离整数与小数
var num;
var dig;
if(number.indexOf(".") == -1)
{
num = number;
dig = "";
}
else
{
num = number.substr(0,number.indexOf("."));
dig = number.substr( number.indexOf(".")+1, number.length);
}
//转换整数部分
var i=1;
var len = num.length;
var dw2 = new Array("","万","亿");//大单位
var dw1 = new Array("拾","佰","千");//小单位
var dw = new Array("","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用
var dws = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//小数部分用
var k1=0;//计小单位
var k2=0;//计大单位
var str="";
for(i=1;i<=len;i++)
{
var n = num.charAt(len-i);
if(n=="0")
{
if(k1!=0)
str = str.substr(1,str.length-1);
if(str.substr(0,1)!="零" && str.substr(0,1)!="万" && str.substr(0,1)!="亿")
{
str="零"+str;
}
}
str = dw[Number(n)].concat(str);//加数字
if(len-i-1>=0)//在数字范围内
{
if(k1!=3)//加小单位
{
str = dw1[k1].concat(str);
k1++;
}
else//不加小单位,加大单位
{
k1=0;
var temp = str.charAt(0);
if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位
str = str.substr( 1, str.length-1);
str = dw2[k2].concat(str);
}
}
if(k1==3)//小单位到千则大单位进一
{
k2++;
}
}
if(str.substr(str.length-1,str.length)=="零")
{
str=str.substr(0,str.length-1);
}
//转换小数部分
var strdig="";
if(Number(dig)==0)
{
strdig="整";
}
else
{
for(i=0;i<2;i++)
{
var n = dig.charAt(i);
if(i==0 && Number(n)==0)
{
strdig="零"
}
else
{
strdig += dws[Number(n)]+(i==0 ? "角" : "分");//加数字
}
}
}
str += "元"+strdig;
return str;
}
function Transform(number)
{
number=new String(parseFloat(number).toFixed(2));
//分离整数与小数
var num;
var dig;
if(number.indexOf(".") == -1)
{
num = number;
dig = "";
}
else
{
num = number.substr(0,number.indexOf("."));
dig = number.substr( number.indexOf(".")+1, number.length);
}
//转换整数部分
var i=1;
var len = num.length;
var dw2 = new Array("","万","亿");//大单位
var dw1 = new Array("拾","佰","千");//小单位
var dw = new Array("","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用
var dws = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//小数部分用
var k1=0;//计小单位
var k2=0;//计大单位
var str="";
for(i=1;i<=len;i++)
{
var n = num.charAt(len-i);
if(n=="0")
{
if(k1!=0)
str = str.substr(1,str.length-1);
if(str.substr(0,1)!="零" && str.substr(0,1)!="万" && str.substr(0,1)!="亿")
{
str="零"+str;
}
}
str = dw[Number(n)].concat(str);//加数字
if(len-i-1>=0)//在数字范围内
{
if(k1!=3)//加小单位
{
str = dw1[k1].concat(str);
k1++;
}
else//不加小单位,加大单位
{
k1=0;
var temp = str.charAt(0);
if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位
str = str.substr( 1, str.length-1);
str = dw2[k2].concat(str);
}
}
if(k1==3)//小单位到千则大单位进一
{
k2++;
}
}
if(str.substr(str.length-1,str.length)=="零")
{
str=str.substr(0,str.length-1);
}
//转换小数部分
var strdig="";
if(Number(dig)==0)
{
strdig="整";
}
else
{
for(i=0;i<2;i++)
{
var n = dig.charAt(i);
if(i==0 && Number(n)==0)
{
strdig="零"
}
else
{
strdig += dws[Number(n)]+(i==0 ? "角" : "分");//加数字
}
}
}
str += "元"+strdig;
return str;
}
相关文章推荐
- JavaScript将数字转换成大写中文的方法
- javascript 数字如何转换成中文大写
- javascript数字转换成中文大写金额函数
- 将阿拉伯数字转换成中文大写的函数(javascript)
- JavaScript将输入的数字金额转换成对应的中文大写金额
- 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- 黑马程序员——金额转换,阿拉伯数字转换成中文大写
- C#使用正则表达式将数字转换为大写中文
- C#阿拉伯数字转换为中文大写
- Dephi阿拉伯数字转换成英文和中文大写
- 刚开始学Java,写了一个金额大写转换和中文大写数字转换的类
- 将天文数字转换成中文大写(.Net/C#/VB/T-SQL/Java 实现)
- 小写数字转换为中文大写的最完整C#方案
- 把人民币数字转换成中文大写
- java实现数字金额转换中文大写金额
- JavaScript实现阿拉伯数字和中文数字互相转换
- C#实现阿拉伯数字(小写金额)到大写中文(大写金额)的转换
- 用Python将数字转换为中文大写
- Java中实现数字金额到中文大写字符的转换!! 选择自 netfalcon 的 Blog
- 实现阿拉伯数字大写中文的转换